Android webView 外部 link -> 新 Activity

Android webView external link -> new Activity

在 activity 1 中,我获得了网络视图。对于每个 link 到外部网站(例如,如果您在 facebook 上并单击 link 到亚马逊)应该 activity 2 开始。

Activity 2 还包含一个网络视图。此 Web 视图应从 activity 1.

加载单击的 link

我读到了 "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;
                    }

                });

仅当我真的离开实际站点时才会触发此方法。但是对我来说,不可能得到该死的 url 的 resultMsg。通常用于调用默认的chrome浏览器,用于外部links.

有什么想法或其他方法吗?

谢谢!

已解决

public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
    String targetUrl = view.getHitTestResult().getExtra();
    //More actions
}