android在新窗口中播放youtube视频

时间:2012-07-03 17:16:10

标签: java android

如果我在网页浏览中加载www.youtube.com网址并选择任何视频,则不会触发播放器的新窗口。我应该在清单上为它设置一些东西吗?如果我使用标准浏览器的作品!事件shouldOverrideUrlLoading或任何其他未被触发。谢谢

webviewA.getSettings().setJavaScriptEnabled(true);
        webviewA.getSettings().setUseWideViewPort(true);
        webviewA.getSettings().setLoadWithOverviewMode(true);
        webviewA.getSettings().setDomStorageEnabled(true);
        webviewA.getSettings().setAllowFileAccess(true);
        webviewA.getSettings().setGeolocationEnabled(true);
        webviewA.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webviewA.getSettings().setBuiltInZoomControls(true);
        webviewA.getSettings().setSupportZoom(true);

        webviewA.getSettings().setPluginState(PluginState.ON);
        webviewA.getSettings().setAllowContentAccess(true);

        webviewA.setVerticalScrollBarEnabled(false);
        webviewA.setHorizontalScrollBarEnabled(false);
        webviewA.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

if (savedInstanceState == null){
            String Url = "www.youtube.com/my-desired_channel";
            webviewA.loadUrl(Url);
        }

事件未被解雇,

 @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url){
    not fired!!
    }

2 个答案:

答案 0 :(得分:1)

您可以使用类似 -

的内容
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=abcde")));

编辑:试试这个

webView.setWebViewClient(new WebViewClient()
{
 public boolean shouldOverrideUrlLoading(WebView view, String url)
 {
  // YouTube video link
  if (url.startsWith("vnd.youtube:"))
  {
   int n = url.indexOf("?");
   if (n > 0)
   {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n)));
   }
   return (true);
  }

  return (false);
 }
});

答案 1 :(得分:0)

很抱歉要说明显而易见但您是否在清单文件中包含了“INTERNET”权限?

编辑:添加代码只是为了确保

你的清单中应该是这样的东西

<manifest ... >
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>