Android的:覆盖工作不shouldOverrideUrlLoading的HTC设备 [英] Android: overriding shouldOverrideUrlLoading not working on HTC devices

查看:677
本文介绍了Android的:覆盖工作不shouldOverrideUrlLoading的HTC设备的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个宏达电Evo运行Android 2.3.5,overrriden shouldOverrideUrlLoading()永远不会被调用。完全相同的code行之有效对三星Galaxy运行Android 2.3.6。

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

我的目的是为提供自定义活动至mailto:电话:中的网页链接present 。我如何能够使这项工作的任何想法,如果 shouldOverrideUrlLoading()永远不会打?

我已经看了看计算器类似的问题和其他地方,都没有发现任何相关信息。


解决方案

shouldOverrideUrlLoading()并不能在一些Android的版本只工作,如2.1或2.3.6,但是它工作正常2.3.3,2.3.5,4.0.2或4.0.3。

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

这是Android开发者的链接: http://developer.android。 COM /国际/ VI /引导/ webapps /下migrating.html


  • 请注意:例:我们有网页链接2


    1. < A HREF =htt​​p://www.w3schools.com/>访问W3Schools的<!/ A>

    2. < A HREF =htt​​p://www.w3schools.com/目标=_空白>访问W3Schools的<!/ A>


shouldOverrideUrlLoading()只叫时链接使用者点击 1
它不叫上链接时,用户点击 2

 公共无效onPageStarted(的WebView视图,字符串URL,位图图标){    如果(url.contains(成功)){
        意向意图=新意图(WebviewActivity.this,OrderConfirmActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(意向);
    }其他{
        super.onPageStarted(查看,网址,图标);
    }
}

On a HTC Evo running Android 2.3.5, overrriden shouldOverrideUrlLoading() is never called. The exact same code works well on a Samsung Galaxy running Android 2.3.6.

so far, I have tried overriding onPageStarted() and onPageFinished(). I do not see the URL in these methods.

My intent is to provide custom activities for mailto: and tel: links present in the page. Any ideas on how I can make this work if shouldOverrideUrlLoading() is never hit?

I have already looked at similar questions on stackoverflow and elsewhere, haven't found anything relevant.

解决方案

shouldOverrideUrlLoading() doesn't work only on some Android versions, like 2.1 or 2.3.6 but it works fine on 2.3.3, 2.3.5, 4.0.2 or 4.0.3.

If you need to handle clicking on a link on webview, you must use shouldOverrideUrlLoading() method. If you only need to handle loading a webpage, you should use onPageStarted().

This is android developer link: http://developer.android.com/intl/vi/guide/webapps/migrating.html

  • Note: Ex: we have 2 links on Webpage.

    1. <a href="http://www.w3schools.com/">Visit W3Schools!</a>
    2. <a href="http://www.w3schools.com/" target="_blank">Visit W3Schools!</a>

shouldOverrideUrlLoading() is only called when user click on link "1". and it isn't called when user click on link "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);
    }
}

这篇关于Android的:覆盖工作不shouldOverrideUrlLoading的HTC设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆