1

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

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

mailto:我的目的是为页面中的tel:链接提供自定义活动。shouldOverrideUrlLoading()如果从未被击中,关于如何使这项工作发挥作用的任何想法?

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

4

1 回答 1

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);
    }
}
于 2013-07-05T06:04:17.017 回答