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

3
我正在尝试创建一个应用内页面,在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浏览器中加载上述URL,则一切正常。


嘿,我也遇到了同样的问题。你有找到解决方案吗?如果你知道解决方法,请分享一下。 - Dipali
1个回答

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

希望它能解决你的问题。


用户想要加载频道并最终点击视频,而不仅仅是加载一个视频。 - CQM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接