如果设置了target =“_ blank”,我怎样才能让我的WebView拦截链接?
我知道shouldOverrideUrlLoading()方法,但如果链接设置了target =“_ blank”,则不会提供信息。问题是,仅凭网址我无法区分链接,我想拦截。我需要知道,如果设置了target =“_ blank”。
有办法吗?谢谢。
答案 0 :(得分:0)
我想看一个检查target="_blank"
的解决方案,但我想,这是不可能的(除非可能有一些令人讨厌的JavaScript注入黑客)
将额外参数(例如?oib=1
)附加到网址并在shouldOverrideUrlLoading
中进行检查更加简单:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("oib=1")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
要做到这一点,您需要控制链接。如果你有很多这样的链接,你可以编写一个JavaScript函数来为你工作:
jQuery('a[target="_blank"]').attr('href', function(i, h) {
return h + (h.indexOf('?') != -1 ? '&oib=1' : '?oib=1');
});