【发布时间】:2016-11-20 10:47:44
【问题描述】:
在活动 1 中,我得到了一个网络视图。对于指向外部网站的每个链接(例如,如果您在 facebook 上并单击指向亚马逊的链接)应该开始活动 2。
活动 2 还包含一个网络视图。此 Web 视图应加载活动 1 中单击的链接。
我读到了“shouldOverrideUrlLoading”方法。但是新的 API 级别太高了。并且不推荐使用的触发器会触发网络视图中的每次点击(如果您不离开该站点也是如此)。我可以过滤 - 但它仍然被弃用。
所以我尝试了这种方式:
WebView view = (WebView) rootView.findViewById(R.id.webView);
view.setWebViewClient(new WebViewClient());
view.getSettings().setSupportMultipleWindows(true);
view.setWebChromeClient(new WebChromeClient() {
@Override public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg)
{
Intent externalLinkIntent = new Intent(getActivity(), ExternalLinkActivity.class);
Bundle bundle = new Bundle();
bundle.putString("externalLink", "externalLinkGoesHere");
externalLinkIntent.putExtras(bundle);
startActivity(externalLinkIntent);
return true;
}
});
仅当我真的离开实际站点时才会触发此方法。但对我来说,不可能取出 resultMsg 的该死的 url。通常用于调用外部链接的默认chrome浏览器。
有什么想法或其他方法吗?
谢谢!
【问题讨论】:
标签: android android-activity webview hyperlink external