YouTube ссылки на WebView не открывают Youtube - PullRequest
1 голос
/ 31 января 2012

Я работал над приложением, требование гласит, что мне нужно открыть ссылку на 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 ]

2 голосов
/ 31 января 2012

Хорошо, если у вас есть URL-адрес видео, а также приложение на YouTube, установленное на устройстве Android, у меня есть идея получше.

Использование startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("url of youtube video")));

Появится всплывающее окно пользователя, отобразятся параметры браузера и YouTube, а при выборе YouTube видео будет воспроизводиться в плеере YouTube.

1 голос
/ 31 января 2012

Я столкнулся с той же проблемой и нашел решение, добавив следующую строку:

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

Надеюсь, это сработает и у вас.

0 голосов
/ 01 декабря 2012

Вам необходимо реализовать WebChromeClient и установить его в качестве клиента веб-просмотра.Затем обработайте воспроизведение видео в обратном вызове onShowCustomView.

0 голосов
/ 31 января 2012

Попробуйте это в 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...