Full screen in WebView - Youtube?

3

The following code does its job perfectly: It takes me to YouTube using webview, that is, without leaving the application and the video plays perfectly. The problem is this: I can not rotate it to put it in full screen.

I've tried with two mobiles:

  • One with 4.4.2: gives me the option to put it on the full screen but when I give it, it ignores me.
  • Another one with 6.0: I do not get that option.

Is not it possible to do it? I've searched for it but it's ambiguous and it was in another language, to see if anyone has got or knows about this peculiar topic.

This is my code:

public class Boxeo extends Fragment {

    WebView appWeb;
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.four_tab, container, false);

        String url = "https://www.youtube.com/playlist?list=PLxORtskANEIq4iBrXbMQvUtIQi_oDCk6c";
        appWeb = (WebView) v.findViewById(R.id.webView);
        //Habilitamos el javaScript y el zoom
        appWeb.getSettings().setJavaScriptEnabled(true);
        //appWeb.getSettings().setBuiltInZoomControls(true);
        //Cargamos el enlace definido
        appWeb.loadUrl(url);
        //Este método es para que el navegador se quede en nuestra aplicación
        appWeb.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
        });

        return v;
    }

    @Override
    public void onResume(){
        super.onResume();
        appWeb.onResume();
    }

    @Override
    public void onPause(){
        super.onPause();
        appWeb.onPause();
    }
}

UPDATED:

public class Boxeo extends Fragment {

    WebView appWeb;

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.four_tab, container, false);

    //poniendo _popup detras de "watch" en el enlace de un video, se veria en grande, pero solo 1 video.
        appWeb = (WebView) v.findViewById(R.id.webView);

      /*String url = "https://www.youtube.com/playlist?list=PLxORtskANEIq4iBrXbMQvUtIQi_oDCk6c";

        //Habilitamos el javaScript
        appWeb.getSettings().setJavaScriptEnabled(true);

        //appWeb.getSettings().setBuiltInZoomControls(true); Para zoom

        //Cargamos el enlace definido
        appWeb.loadUrl(url);

        appWeb.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
        });

        return v;*/


        String video = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 100%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"https://www.youtube.com/playlist?list=PLxORtskANEIq4iBrXbMQvUtIQi_oDCk6c\" frameborder=\"0\">\n"
                + "</iframe>\n";
        appWeb.getSettings().setPluginState(WebSettings.PluginState.ON);
        appWeb.setWebChromeClient(new WebChromeClient());
        appWeb.getSettings().setJavaScriptEnabled(true);
        appWeb.setHorizontalScrollBarEnabled(false);
        appWeb.setVerticalScrollBarEnabled(false);
        appWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        appWeb.getSettings().setBuiltInZoomControls(false);
        appWeb.getSettings().setAppCacheEnabled(true);
        appWeb.setInitialScale(0);
        appWeb.getSettings().setLoadWithOverviewMode(true);
        appWeb.getSettings().setUseWideViewPort(true);
        appWeb.loadData(video,"text/html","UTF-8");

        return v;

    }


    @Override
    public void onResume(){
        super.onResume();
        appWeb.onResume();
    }

    @Override
    public void onPause(){
        super.onPause();
        appWeb.onPause();
    }


}
  

17453-17453 / com.prueba.rudeboys.rudeboys1 E / AndroidRuntime: FATAL EXCEPTION: main                                                                                  Process: com.prueba.rudeboys.rudeboys1, PID: 17453                                                                                  java.lang.NullPointerException: Attempt to invoke virtual method 'android.webkit.WebSettings android.webkit.WebView.getSettings ()' on a null object reference                                                                                      at com.prueba.rudeboys.rudeboys1.Videos.Boxeo.onCreateView (Boxeo.java:55)                                                                                      at android.support.v4.app.Fragment.performCreateView (Fragment.java:2074)                                                                                      at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1104)                                                                                      at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1286)                                                                                      at android.support.v4.app.BackStackRecord.run (BackStackRecord.java:758)                                                                                      at android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1671)                                                                                      at android.support.v4.app.FragmentManagerImpl $ 1.run (FragmentManager.java:532)                                                                                      at android.os.Handler.handleCallback (Handler.java:746)                                                                                      at android.os.Handler.dispatchMessage (Handler.java:95)                                                                                      at android.os.Looper.loop (Looper.java:148)                                                                                      at android.app.ActivityThread.main (ActivityThread.java:5443)                                                                                      at java.lang.reflect.Method.invoke (Native Method)                                                                                      at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:728)                                                                                      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618)

    
asked by Rf Mvs 26.01.2017 в 14:36
source

1 answer

2

You can see this repo

Or use iframe :

String video = "<html><body>Youtube video .. <br> <iframe class=\"youtube-player\" type=\"text/html\" width=\"640\" height=\"385\" src=\"https://www.youtube.com/playlist?list=PLxORtskANEIq4iBrXbMQvUtIQi_oDCk6c\"   allowfullscreen=\"allowfullscreen\" frameborder=\"0\"></body></html>"

appWeb.setWebChromeClient(new WebChromeClient());
appWeb.getSettings().setMediaPlaybackRequiresUserGesture(false);
appWeb.loadData(video , "text/html", "utf-8");

Or try this way:

String video = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 100%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"https://www.youtube.com/playlist?list=PLxORtskANEIq4iBrXbMQvUtIQi_oDCk6c\" frameborder=\"0\">\n"
                + "</iframe>\n";
        appWeb.getSettings().setPluginState(PluginState.ON);
        appWeb.setWebChromeClient(new WebChromeClient());
        appWeb.getSettings().setJavaScriptEnabled(true);
        appWeb.setHorizontalScrollBarEnabled(false);
        appWeb.setVerticalScrollBarEnabled(false);
        appWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        appWeb.getSettings().setBuiltInZoomControls(false);
        appWeb.getSettings().setAppCacheEnabled(true);
        appWeb.setInitialScale(0);
        appWeb.getSettings().setLoadWithOverviewMode(true);
        appWeb.getSettings().setUseWideViewPort(true);
        appWeb.loadData(video,"text/html","UTF-8");
    
answered by 26.01.2017 в 16:41