2011-02-08 44 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

相关问题