我有一个WebView
我想rel=external
在 Android 浏览器中打开的锚标签,但所有其他链接都保留在WebView
.
WebView
因此,如果用户点击其标记如下所示的链接,内容将在其中加载:
<a href="http://example.com/">Whatever</a>
但是,如果用户点击标记如下所示的链接,内容将加载到 Android 浏览器中:
<a href="http://example.com/" rel="external">Whatever</a>
这是我在代码中的相关代码(带有一点用注释标识的伪WebViewClient
代码):
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (! rel=external) { // <-- That condition...how do I do that?
view.loadUrl(url);
return false;
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
确定是否存在rel=external
属性/值的最佳方法是以某种方式使用addJavascriptInterface()
并让 JavaScript 通知 Java 是否存在rel
属性以及值是什么?
或者,还有更好的方法?
(我正在寻找一种不涉及检查 URL 域的解决方案,因为有任意数量的域需要被视为内部域并且我无法提前知道或在运行中轻松确定。)