Android:覆盖shouldOverrideUrlLoading无法在HTC设备上运行

时间:2012-10-27 00:24:22

标签: android webview override

在运行Android 2.3.5的HTC Evo上,永远不会调用覆盖shouldOverrideUrlLoading()。完全相同的代码在运行Android 2.3.6的三星Galaxy上运行良好。

到目前为止,我已尝试覆盖onPageStarted()onPageFinished()。我没有在这些方法中看到URL。

我的目的是为页面中显示的mailto:tel:个链接提供自定义活动。如果shouldOverrideUrlLoading()永远不会被击中,我对如何使这项工作有任何想法?

我已经在stackoverflow和其他地方查看了类似的问题,但没有发现任何相关内容。

1 个答案:

答案 0 :(得分:4)

shouldOverrideUrlLoading()不仅适用于某些Android版本,例如2.1或2.3.6,但它在2.3.3,2.3.5,4.0.2或4.0.3上运行良好。

如果您需要处理点击webview上的链接,则必须使用shouldOverrideUrlLoading()方法。如果您只需要处理加载网页,则应使用onPageStarted()

这是android开发人员链接:https://developer.android.com/guide/webapps/migrating.html

  • 注意:例如:我们在网页上有2个链接。

    1. <a href="http://www.w3schools.com/">Visit W3Schools!</a>
    2. <a href="http://www.w3schools.com/" target="_blank">Visit W3Schools!</a>
仅当用户点击链接“shouldOverrideUrlLoading()”时,才会调用

1。 当用户点击链接“2

时,不会调用它
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);
    }
}