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)