WebView上的YouTube链接无法打开Youtube

时间:2012-01-31 07:11:11

标签: android webview youtube

我一直致力于应用,要求声明我需要在Web视图上打开Youtube链接。点击视频后,我需要打开Youtube应用程序播放视频。

经过多次尝试未能成功实现这一目标! 期待消化。

这就是我的尝试。

        wb = (WebView)findViewById(R.id.web);
        wb.getSettings().setJavaScriptEnabled(true);
        wb.setWebViewClient(new MyClient());
        wb.getSettings().setPluginsEnabled(true);
        wb.getSettings().setPluginState(PluginState.ON_DEMAND);
        wb.getSettings().setAllowFileAccess(true);
        wb.getSettings().setAppCacheEnabled(true);
        wb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        wb.loadUrl("http://m.youtube.com");


private class MyClient extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            mHandler.post(new Runnable() {
                public void run() {
                    if(!pgd.isShowing()){
                        pgd.show();
                    }
                }
            });
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i("url loaded", "url::: " + url);
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            mHandler.post(new Runnable() {
                public void run() {
                    if(pgd !=null && pgd.isShowing()){
                        pgd.dismiss();
                    }
                }
            });
            super.onPageFinished(view, url);
        }
    }

任何指针都将受到高度赞赏。 感谢。

4 个答案:

答案 0 :(得分:2)

如果你有视频的网址,并且在Android设备上安装了youtube的应用程序,那我就更好了。

使用startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("url of youtube video")));

这会弹出用户并显示浏览器和YouTube的选项,如果选择了YouTube,视频将在YouTube播放器中播放。

答案 1 :(得分:1)

我遇到了同样的问题并通过添加以下内容获得了解决方案:

wb.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");

希望它也适合你。

答案 2 :(得分:0)

在onCreate()中试试这个:

    WebView webview = new WebView(this); 

   String htmlString = "<html> <body> <embed src=\"link of youtube video\"; type=application/x-shockwave-flash width="+DeviceWidth+" height="+DeviceHeight+"> </embed> </body> </html>";

   webview.loadDataWithBaseURL(null,htmlString ,"text/html", "UTF-8",null);
   webview.setWebViewClient(new MyClient());

答案 3 :(得分:0)

您需要实现WebChromeClient并将其设置为webview的客户端。然后在onShowCustomView回调中处理视频播放。