javascript – 仅为某些网页调用shouldOverrideUrlLoading

我正在使用方法shouldOverrideUrlLoading为多个客户端个性化的应用程序.每个客户都有自己的网页,希望加载到网页浏览中.我的问题是:该应用程序适用于客户端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);
        }
    }
上一篇:javascript – 在内部链接上,例如#id是否有一个事件被触发,我可以附加一个处理程序?


下一篇:单击使用htmlunit的javascript锚点似乎不起作用