gpt4 book ai didi

javascript - shouldOverrideUrlLoading 仅针对某些网页被调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:53 24 4
gpt4 key购买 nike

我将 shouldOverrideUrlLoading 方法用于针对多个客户端进行个性化设置的应用程序。每个客户端都有自己的网页,需要加载到 webview 中。我的问题是:该应用程序非常适合客户 A 和他的网页,但不适用于客户 B 的网页(与客户 A 没有任何关系)。正如我所测试的,不同之处在于,在客户端 B 的情况下,对于在加载到 web View 中的内容中访问的链接,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);
}
}

关于javascript - shouldOverrideUrlLoading 仅针对某些网页被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com