2011-02-08 12 views
3

WebView内でYouTubeチャンネルを読み込むアプリ内ページを作成しようとしています。私はビデオの実際の演奏を除いて、ほとんどすべての作業を行ってきました。それはWebViewの内部にあるかのように、ビデオをタップして再生すると、メッセージが失われます。私は期待通りにshouldOverrideUrlLoading()を呼び出すことはありません。Android:WebViewでYouTubeチャンネルを読み込む方法は?

コードは次のとおりです。

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()が "vnd.youtube:"のようなURLで呼び出されることをexepctしますが、私はそれを見ません。

もちろん、上記の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全体をwebviewに読み込みます。

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

を共有してください。チャンネルを読み込んで最終的にビデオをクリックしたいのですが、1つのビデオを読み込むだけではありません – CQM

関連する問題