2012-10-07 75 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