我正在为针对多个客户端进行个性化的应用程序使用 shouldOverrideUrlLoading 方法。每个客户端都有自己的网页想要加载到 webview 中。我的问题是这样的:该应用程序非常适合客户 A 及其网页,但不适用于客户 B 的网页(与客户 A 没有任何关系)。正如我测试的那样,区别在于,在客户端的 B 情况下,对于在 webview 中加载的内容中访问的链接,shoulOverrideUrlLoading 不起作用(永远不会被调用),而对于客户端的 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>
解决方案shouldOverrideUrlLoading
没有被调用
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (url.contains("success")) {
Intent intent = new Intent(WebviewActivity.this, OrderConfirmActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else {
super.onPageStarted(view, url, favicon);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)