在活动1中,我获得了一个Web视图。对于外部网站的每个链接(例如,如果您在Facebook上,并且单击指向亚马逊的链接),应启动活动2。
活动2还包含一个Web视图。此Web视图应加载活动1中单击的链接。
我读到了“shouldOverrideUrlLoading”方法。但是新的api级别太高了。不推荐使用的触发器会在Web视图中触发每次点击(如果您不离开网站,也会触发)。我可以过滤 - 但它仍然被弃用。
所以我试过这种方式:
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;
}
});
此方法仅在我真正离开实际网站时触发。但对我来说,不可能得到结果Mg的该死的网址。通常它用于调用外部链接的默认chrome浏览器。
有任何想法或其他方式吗?
谢谢!
答案 0 :(得分:0)
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
String targetUrl = view.getHitTestResult().getExtra();
//More actions
}