防止在Android WebView中自动链接电子邮件和URL

时间:2010-07-06 17:57:33

标签: android webview

我有WebView,其中可能包含似乎正在“自动关联”的数据。看起来像电子邮件地址的内容正在变得可点击,即使它现在位于<a>标记内或具有onclick属性。如何禁用此自动链接?

我看过WebView文档以及WebSettings文档,但似乎没有看到任何提及此行为的内容。

alt text http://beautifulpixel.com/assets/5554_Fast-20100706-110228.png

5 个答案:

答案 0 :(得分:5)

我知道这有点晚了,但是为了将来参考,这可能是一个解决方案,无论链接是在<a> - 标签中自动创建还是定义,都可以使用。

myWebView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // return true; // will disable all links

        // disable phone and email links
        if(url.startsWith("mailto") || url.startsWith("tel")) {
            return true;
        }

        // leave the decision to the webview
        return false;
    }
});

答案 1 :(得分:2)

所有电子邮件地址,请添加元标记:

<meta name="format-detection" content="email=no" />

您还可以禁用物理地址和电话检测:

<meta name="format-detection" content="telephone=no" />
<meta name="format-detection" content="address=no" />

在我自己的应用程序中,我需要PhD's solution来阻止只有一封电子邮件被链接。

答案 2 :(得分:1)

我有同样的问题,试过这个:

<a onClick=\"return false;\">jorgesys@elnorte.com</a>

它不起作用。

然后尝试了这个:

<a href='javascript:void(0);'>800-644-9737</a>

它完成了伎俩

答案 3 :(得分:0)

嗨Squeaky为什么你想从webview中删除这个功能,但是一个棘手的方法是在包含电子邮件或URL的锚标记中加入onClick="return false;"

<a onClick=\"return false;\">jorgesys@elnorte.com</a>

答案 4 :(得分:-1)

这似乎是WebView无法更改的功能。

您可以执行与此Is there any way to have WebView auto-link URLs and phone numbers in Android?相反的操作并创建一个javascript链接剥离器(而不是那里建议的链接注入器)。

不确定还有什么可以解决这个问题。