2010-07-06 42 views
4

我有一个WebView,它可能包含似乎正在“自动链接”的数据。看起来像电子邮件地址的东西变得可点击,即使它现在处于<a>标记内或具有onclick属性。我如何禁用此自动链接?防止Android WebView中电子邮件和URL的自动链接

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

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

+0

你为什么想要抑制这种行为?似乎非常合理的是,主要目的是通信的设备上的所有电子邮件地址应该可点击发送电子邮件... – 2010-07-06 18:08:54

+0

我对此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 – 2010-07-06 18:50:51

回答

0

嗨Squeaggy为什么你想从webview中消除这种funcionality,但一个棘手的方法是将onClick="return false;"包含在包含电子邮件或URL的锚定标记中。

<a onClick=\"return false;\">[email protected]</a> 
1

我有同样的问题,尝试这样:

<a onClick=\"return false;\">[email protected]</a> 

它并没有奏效。

然后尝试这样:

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

,它的伎俩

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; 
    } 
}); 
+0

谢谢,这帮了我很大的忙。 – draksia 2012-05-14 17:37:19

+0

非常好的答案。 – 2016-06-06 08:43:51

1

做所有的电子邮件地址,添加一个meta标签:

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

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

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

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

相关问题