15

我正在使用WebViewClient.shouldOverrideUrlLoading来捕获 WebView 中的任何链接点击。这在大约 95% 的情况下都有效,但有时根本不会调用它。

我在这三种情况下注意到了它:

  1. 当链接指向他们已经在的页面时。这不是什么大问题,并且报告了一个错误
  2. 当页面仍在加载时,如果用户点击一个链接,它很少会捕捉到它。它只会打开链接而无需调用shouldOverrideUrlLoading.
  3. 随机。在过去几个月中对此进行试验时,我注意到有时它无法捕捉到它。这种情况很少见,但确实会发生。

现在我的问题主要是如何解决问题 2,因为其他问题不大。但是,如果有人解决了 1 或 3,我很想听听。

另外,我应该提到我已经尝试了不同的返回值,shouldOverrideUrlLoading并且我注意到总是返回 true 似乎有最好的结果,但是上面的问题仍然存在。

4

2 回答 2

7

如果 HTML 是您自己的,您可以将所有传统链接替换为对您自己的 Java 对象的调用,注入到WebViewviaaddJavascriptInterface()中。那你就不再依赖了shouldOverrideUrlLoading()

否则,可能会尝试阻止用户与页面交互,直到onPageFinished().

我没有遇到这个问题,但我也没有广泛使用WebView任意内容。

于 2011-02-26T21:28:42.283 回答
5

尝试在修改的页面上使用 js 更改网页时遇到了类似的问题window.location。事实证明,修改 url 方案/协议会使 webview 流行起来shouldOverrideUrlLoading。我知道这对你没有帮助,因为你不拥有 HTML,但我认为它会帮助任何偶然发现这个问题的人。

于 2011-07-07T21:23:56.350 回答