2012-10-07 79 views
1

我想禁用Youtube嵌入視頻在WebView上,最好用Youtube頁面的鏈接取代它們(點擊時將打開瀏覽器選擇器)...Android - webview,禁用或替換youtube視頻

這是我(相當通用)的WebView:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_parodia); 

    BlogView = (WebView) findViewById(R.id.blogview); 
    BlogView.setWebViewClient(new CustomClient()); 
    WebSettings webSettings = BlogView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 

    BlogView.loadUrl("http://test.blogspot.com/?m=1"); 
} 

編輯:this就是我要找的,如何實現它在Android的WebView任何幫助嗎?

回答

2
$(document).ready(function() { 
    $('iframe').each(function() { 
     var src = $(this).attr('src'); 
     // Replace youtube vids 
     var ytprefix = "http://www.youtube.com/embed/"; 

     if(src.indexOf(ytprefix) != -1) { 
      replaceYT(this, src.substring(ytprefix.length)); 
     } 
    }); 

    $('object').each(function() { 
     var srcel = $('param[name="src"]', this); 
     var src = $(srcel).attr('value'); 
     // Replace youtube vids 
     var ytprefix = "http://www.youtube.com/v/"; 
     if(src.indexOf(ytprefix) != -1) { 
      replaceYT(this, src.substring(ytprefix.length)); 
     } 
    }); 
}); 

function replaceYT(el, code) { 
    if(code.indexOf("/") != -1) { 
     code = code.substring(0, code.indexOf("/")); 
    } 
    if(code.indexOf("?") != -1) { 
     code = code.substring(0, code.indexOf("?")); 
    } 
    var atag = $("<a href='vnd.youtube:" + code +"'><img class='youtubeimg' src='file:///android_asset/youtube-play-button.png' style='background:url(http://img.youtube.com/vi/" + code + "/0.jpg)'/></a>"); 
    $(el).replaceWith(atag); 
} 

只是加載在jQuery和這個腳本。這將取代youtube iframes和object tags以及來自視頻的屏幕截圖以及指向youtube的鏈接。經測試在SE的Xperia X10 &的Nexus 7

設置你的web視圖來處理的YouTube這樣的: WebViewClient mWebClient =新WebViewClient(){

@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (url.startsWith("http://www.youtube.com") || url.startsWith("vnd.youtube")){ 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      return true; 
     } 
     return false; 
    } 

}; 
+0

的 「shouldOverrideUrlLoading」 部分幫我裝逼的YouTube視頻進入android內置的youtube應用程序。 Upvote爲此。 – sandalone