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

5

你为什么想要禁止这种行为?在一个主要目的是通信的设备上,所有的电子邮件地址都应该是可以点击的,以便发送电子邮件,这似乎非常合理... - Dan Davies Brackett
我对这个 WebView 的内容有100%的控制权。 我不希望它执行我没有告诉它要做的事情。 如果我想要一个可点击的电子邮件地址,我会让它可点击。 此外,在我的设置中,它会被事件处理程序覆盖,以防止它在此处实际触发。 主要是因为我想要显式地控制这种行为。 特别是因为它还可以进行 D-pad 高亮。 iPhone 的 UIWebView 可以让您关闭它:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIWebView_Class/Reference/Reference.html#//apple_ref/occ/instp/UIWebView/dataDetectorTypes - Alex Wayne
5个回答

6

我知道现在有点晚了,但是以后参考的话,这可能是一个解决方案,无论链接是自动生成的还是在 <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;
    }
});

谢谢,这对我帮助很大。 - draksia

2
要添加所有电子邮件地址,请添加meta标签:

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

您还可以禁用物理地址和电话号码的检测:
<meta name="format-detection" content="telephone=no" />
<meta name="format-detection" content="address=no" />

在我的应用程序中,我需要博士的解决方案来防止只有一个电子邮件被链接。

1

我曾经遇到同样的问题,尝试了这个方法:

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

它没有起作用。

然后尝试了这个:

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

它起到了作用。


0

嗨,Squeaggy,你为什么要从 webview 中删除该功能?但是一个巧妙的方法是在包含电子邮件或 URL 的锚点标记中包括 onClick="return false;"

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

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接