Android: как загрузить канал YouTube в WebView? - PullRequest
3 голосов
/ 08 февраля 2011

Я пытаюсь создать страницу в приложении, которая загружает канал YouTube внутри WebView.У меня почти все работает, кроме фактического воспроизведения видео.Как будто внутри 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 дляпример.Я что-то пропустил?Я хотел бы предположить, что shouldOverridingUrlLoading () будет вызываться с URL-адресом вроде «vnd.youtube:», но я его никогда не вижу.

Конечно, если я загружаю вышеуказанный URL-адрес в браузере Android, все работает нормально.

1 Ответ

1 голос
/ 07 сентября 2012

Я использую HTML-файл, а затем помещаю в него тег. Как то так.

<iframe width="560" height="315" 
        src="http://www.youtube.com/embed/{{video}}?autoplay=1" 
        frameborder="0" 
        allowfullscreen>
</iframe>

Затем загрузите весь мой HTML в веб-просмотр.

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

Надеюсь, что это может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...