Android:如何在WebView中加载YouTube频道?

时间:2011-02-08 15:52:39

标签: android youtube webview

我正在尝试创建一个应用内页面,用于在WebView中加载YouTube频道。除了实际播放视频之外,我已经完成了所有工作。就好像在WebView内部,当我点击视频播放它时,消息就会丢失。我没有像我期望的那样看到对shouldOverrideUrlLoading()的调用。

代码是:

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

加载的URL类似于:http://www.youtube.com/tinhtevideo作为示例。我错过了什么吗?我会说,如果使用像“vnd.youtube:”这样的URL来调用shouldOverridingUrlLoading(),但我从来没有看到它。

当然,如果我在Android浏览器中加载上述网址,一切正常。

1 个答案:

答案 0 :(得分: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);

希望它可以解决您的问题。