Android WebView target="_blank" 打开新窗口
Android 4.4之前使用WebView使用WebKit内核,之后使用Chromium内核
网页使用target="_blank"打开新窗口,是不会执行WebChromeClient中的onCreateWindow方法的,
所以我们要采用其他方案来打开新窗口。
我采用的方法:替换标签,不过替换的标签,进行新窗口的打开
javascript: var allLinks = document.getElementsByTagName('a'); if (allLinks) {var i;for (i=0; i<allLinks.length; i++) {var link = allLinks[i];var target = link.getAttribute('target'); if (target && target == '_blank'&& link.toString().subString(0,7) != 'newtab:') {link.setAttribute('target','_self');link.href = 'newtab:'+link.href;}}}
在onPageFinished方法中webView.loadUrl("上边的javascript"),替换_blank对应的href地址;
在onPageStart方法中判断url.startWiths("newtab:"),然后新开窗口加载newtab:之后的地址;
也可以把js写入到文件中,将文件放到assets文件夹里面,webView.loadUrl("file:///android_asset/xx.js"),这样去执行js方法。