2011-02-08 5 views
3

Я пытаюсь создать страницу в приложении, которая загружает канал YouTube внутри WebView. У меня почти все работает, кроме фактического воспроизведения видео. Это как если бы внутри WebView, когда я нажимаю на видео, чтобы воспроизвести его, сообщение теряется. Я не вижу вызова функции shouldOverrideUrlLoading(), как и следовало ожидать.Android: Как загрузить канал YouTube в WebView?

Кодекс:

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, все работает нормально.

+0

Эй, я столкнулся с той же проблемой У вас было какое-либо решение для этого ???? , если вы знаете, что для этого хотите, пожалуйста, поделитесь им. – Dipali

ответ

1

Я использую 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); 

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

+0

пользователь хочет загрузить канал и в конечном итоге нажать на видео, а не просто загрузить одно видео – CQM

Смежные вопросы