Android webView外部链接 - >新活动

时间:2016-07-17 22:02:43

标签: android android-activity webview hyperlink external

在活动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浏览器。

有任何想法或其他方式吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

解决

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