2012-07-03 35 views
1

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

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!! 
    } 

回答

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); 
} 
}); 
+0

确定,但其中?? shouldOverrideUrlLoading未点击YouTube视频时被触发 – Jaume

+0

@Jaume检查编辑 – Suchi

+0

您正在使用shouldOverrideUrlLoading,它不会在点击YouTube视频时被解雇 – Jaume

0

对不起不言自明的,但你有没有在“INTERNET”权限中加入你的清单文件?

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

应该是这样在你的清单

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

这没有多大意义,他已经能够使用WebView。 – MrZander

相关问题