isOverrideUrlLoading是否在同一域内调用链接?

时间:2016-11-30 12:33:05

标签: android android-webview

我有一个混合应用程序,我有一个WebView,它实现了shouldOverrideUrlLoading方法(已弃用和最新版本)。这应该在加载我的域中的任何外部链接或某些链接之前接管控制权。没有详细说明,代码看起来像这样:

private WebView mWebView;

mWebView.setWebViewClient(new myWebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.isExternal() || url.contains("#specialCase")) {
            // Do actions
            return true;
        }
        return super.shouldOverrideUrlLoading(view, url);
    }
});

我注意到所有外部链接都正常工作,但是当链接在我的域中时,根本没有调用OverUublUrlLoading,因此我无法检测到我想接管控制的情况。

android文档说明

  

时,让主机应用程序有机会接管控制权   url即将加载到当前的WebView中。

新的意味着不同的域吗?有什么我遗失或做错了吗?有关如何检测用户的任何想法都点击了指向同一域的链接?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

终于找到了为什么永远不会调用shouldOverrideUrlLoading的原因。

显然,该方法仅在实际加载即将开始时调用。我们的Web应用程序是单页面应用程序,因此即使URL更改,也不会加载新页面并且不会调用shouldOverrideUrlLoading。