我一直致力于应用,要求声明我需要在Web视图上打开Youtube链接。点击视频后,我需要打开Youtube应用程序播放视频。
经过多次尝试未能成功实现这一目标! 期待消化。
这就是我的尝试。
wb = (WebView)findViewById(R.id.web);
wb.getSettings().setJavaScriptEnabled(true);
wb.setWebViewClient(new MyClient());
wb.getSettings().setPluginsEnabled(true);
wb.getSettings().setPluginState(PluginState.ON_DEMAND);
wb.getSettings().setAllowFileAccess(true);
wb.getSettings().setAppCacheEnabled(true);
wb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wb.loadUrl("http://m.youtube.com");
private class MyClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mHandler.post(new Runnable() {
public void run() {
if(!pgd.isShowing()){
pgd.show();
}
}
});
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i("url loaded", "url::: " + url);
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
mHandler.post(new Runnable() {
public void run() {
if(pgd !=null && pgd.isShowing()){
pgd.dismiss();
}
}
});
super.onPageFinished(view, url);
}
}
任何指针都将受到高度赞赏。 感谢。
答案 0 :(得分:2)
如果你有视频的网址,并且在Android设备上安装了youtube的应用程序,那我就更好了。
使用startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("url of youtube video")));
这会弹出用户并显示浏览器和YouTube的选项,如果选择了YouTube,视频将在YouTube播放器中播放。
答案 1 :(得分:1)
我遇到了同样的问题并通过添加以下内容获得了解决方案:
wb.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
希望它也适合你。
答案 2 :(得分:0)
在onCreate()中试试这个:
WebView webview = new WebView(this);
String htmlString = "<html> <body> <embed src=\"link of youtube video\"; type=application/x-shockwave-flash width="+DeviceWidth+" height="+DeviceHeight+"> </embed> </body> </html>";
webview.loadDataWithBaseURL(null,htmlString ,"text/html", "UTF-8",null);
webview.setWebViewClient(new MyClient());
答案 3 :(得分:0)
您需要实现WebChromeClient并将其设置为webview的客户端。然后在onShowCustomView回调中处理视频播放。