我将方法 shouldOverrideUrlLoading 用于为多个客户端个性化的应用程序。每个客户端都有自己想要加载到 webview 中的网页。我的问题是:该应用程序非常适合客户端 A 和他的网页,但不适用于客户端 B 的网页(与客户端 A 没有任何关系)。正如我所测试的,不同之处在于,在客户端 B 的情况下,对于在加载到 webview 的内容中访问的链接,shouulOverrideUrlLoading 不起作用(永远不会被调用),而对于客户端的 A 网页则可以完美运行。另一件事是客户端的 B 网页不仅适用于某些 Android 版本,如 2.1 或 2.3.6,但在 2.3.3、2.3.5、4.0.2 或 4.0.3 上运行良好。
所以这有点奇怪。如果你碰巧知道什么,请帮忙!谢谢!:)
编辑:我注意到当网页不通过javascript加载请求的链接时不会调用shouldOverrideLoading,并且在不使用javascript时它可以工作!!!但是当我设置 webview.setJavaScriptEnabled(false) 时它起作用了!!!我真的需要为我的应用程序启用 javascript,因为网页通常使用 javascript 来处理除了加载之外的其他事情,所以我不能仅仅因为 shouldOverrideUrlLoading 没有被调用就禁用它!
编辑2:更准确地说:
这个有效,并且 shouldOverrideUrlLoading 被调用:
<p onclick="location.href='linkHere'">
NewLink
<span class="icon-arrow"></span>
</p>
这个不起作用,并且 shouldOverrideUrlLoading 不会被调用:
<a class="link-inherit" href="linkHere">
NewLink
<span class="icon-arrow"></span>
</a>