2012-07-03 38 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

相關問題