1

如果我在 webview 上加载 www.youtube.com url 并选择任何视频,则不会触发带有播放器的新窗口。我应该在清单上为它设置一些东西吗?如果我使用标准浏览器工作!不会触发事件 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!!
    }
4

2 回答 2

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);
 }
});
于 2012-07-03T17:18:12.163 回答
0

很抱歉说明这一点,但您是否在清单文件中包含“INTERNET”权限?

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

在你的清单中应该是这样的

<manifest ... >
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
于 2012-07-03T17:23:05.190 回答