我想在WebView上禁用Youtube嵌入式视频,最好使用指向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上实现它的任何帮助?
答案 0 :(得分: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的链接替换youtube iframe和object标记。在SE Xperia X10&amp; X测试中测试Nexus 7。
设置您的网络视图以处理youtube,如下所示: WebViewClient mWebClient = new 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;
}
};