2011-02-08 23 views
3

我正在嘗試創建一個在WebView中加載YouTube頻道的應用內頁面。除了視頻的實際播放外,我幾乎可以完成所有工作。就好像在WebView內部,當我點擊視頻播放它時,信息就會丟失。我沒有看到像我期望的那樣調用shouldOverrideUrlLoading()。Android:如何在WebView中加載YouTube頻道?

代碼是:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.webview); 
     webView = (WebView)findViewById(R.id.webview); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setWebViewClient(new webViewClient()); 
     webView.loadUrl(getIntent().getStringExtra("url")); 
    } 

    private class webViewClient extends WebViewClient { 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url.equals("about:blank")) { 
       return true; 
      } 
      view.loadUrl(url); 
      return true; 
     } 
    } 

是被加載是一樣的東西的網址:http://www.youtube.com/tinhtevideo爲例。我錯過了什麼嗎?我會看到,應該使用像「vnd.youtube:」這樣的URL調用OVERIRINGUrlLoading(),但我從來沒有看到它。

當然,如果我在Android瀏覽器中加載上述URL,一切正常。

+0

嘿,我面臨同樣的問題 你有沒有得到任何解決方案? 如果你知道soln爲此然後請分享它 – Dipali 2012-01-21 10:38:44

回答

1

我使用了一個html文件,然後在裏面放了一個標籤。 就是這樣。

<iframe width="560" height="315" 
     src="http://www.youtube.com/embed/{{video}}?autoplay=1" 
     frameborder="0" 
     allowfullscreen> 
</iframe> 

然後加載我的整個html到webview。

private String myHtmlData = ""; //myHtmlData is my html file 
myWebView.setBackgroundColor(Color.TRANSPARENT); 
WebSettings settings = myWebView.getSettings(); 
settings.setJavaScriptEnabled(true); 
settings.setPluginsEnabled(true); 
settings.setCacheMode(WebSettings.LOAD_NO_CACHE); 
myHtmlData, "text/html", "utf-8", null); 
myWebView.loadData(myHtmlData, "text/html", "utf-8"); 

順便說一句,我把我的html文件放在項目的資產類別中。

getAssets().open(fileName); 

希望它能解決您的問題。

+0

用戶想要加載頻道,並最終點擊一個視頻,而不是隻加載一個視頻 – CQM 2012-12-05 17:34:17

相關問題