关于WebView:Android:覆盖shouldOverrideUrlLoading在HTC设备上不起作用

Android: overriding shouldOverrideUrlLoading not working on HTC devices

在运行Android 2.3.5的HTC Evo上,永远不会调用重写的shouldOverrideUrlLoading()。完全相同的代码在运行Android 2.3.6的Samsung Galaxy上效果很好。

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

我的目的是为页面中存在的mailto:tel:链接提供自定义活动。如果永不命中shouldOverrideUrlLoading(),如何使此工作有效的任何想法?

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


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个链接。

  • Visit W3Schools!
  • Visit W3Schools!

shouldOverrideUrlLoading()仅在用户单击链接" 1"时调用。
用户单击链接" 2"

时不会调用它

1
2
3
4
5
6
7
8
9
10
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);
    }
}