Встроенная ссылка на YouTube не работает в мобильном приложении - PullRequest
1 голос
/ 14 мая 2019

На сайте есть 1 модуль, в который мы добавляем ссылку YouTube для встраивания. На сайте используется <iframe src="embed_url"></iframe> и работает.

Рабочая видео ссылка (https://www.youtube.com/embed/XG9U7nJv0aE)

Не работает ссылка на видео (https://www.youtube.com/embed/9ClYy0MxsU0)

В мобильных приложениях (Android / iOS), возникающих при воспроизведении видео в приложениях. Показывает видео недоступно.

для воспроизведения видео с использованием webview

wv_webView.setWebViewClient(new MyBrowser(pb_insidewv_webView));
wv_webView.getSettings().setLoadsImagesAutomatically(true);
wv_webView.getSettings().setJavaScriptEnabled(true);
wv_webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
wv_webView.loadUrl(loadVideo);

класс

private class MyBrowser extends WebViewClient {

    ProgressBar progressBar;

    public MyBrowser(ProgressBar pb_insidewv_webView) {
        this.progressBar = pb_insidewv_webView;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        pb_insidewv_webView.setVisibility(View.VISIBLE);
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        Log.e(TAG, "onPageFinished: 553->" + url);
        pb_insidewv_webView.setVisibility(View.GONE);
    }

    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        pb_insidewv_webView.setVisibility(View.GONE);
        Log.e(TAG, "onReceivedError: 558->" + description);
    }
}

1 Ответ

0 голосов
/ 14 мая 2019

Когда я работал с видео встраиваемого в Facebook, у вас были те же проблемы. Затем я заметил, что webviewclient не поддерживает HTML5, а затем меняет webviewclient на клиент chrome после его работы. Можете ли вы попробовать этот клиент?

private final class MyChromeClient extends WebChromeClient {
        @Override
        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {



            return super.onConsoleMessage(consoleMessage);
        }
    }
...