【问题标题】:How do you disable phone number detection in mobile safari如何在移动 Safari 中禁用电话号码检测
【发布时间】:2011-04-08 15:51:28
【问题描述】:

我尝试在 Safari 中为我的 Web 应用禁用电话号码检测,但它仍然显示 7 个由数字组成的字符串作为电话号码。我使用了苹果提供的元标记,但没有任何乐趣。

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

还有其他人遇到这个问题并解决它吗?

谢谢。

更新:它似乎没有检测到 Safari 中的电话号码,而是当我将页面保存为图标并从主屏幕运行时。

【问题讨论】:

标签: iphone web-applications mobile-safari


【解决方案1】:

你是在 UIWebView 中加载这个吗?如果是这样,您需要设置 dataDetectorTypes 的属性。例如:

webView.dataDetectorTypes = UIDataDetectorTypeNone

有效的检测器类型是here.

在苹果网站上搜索 UIWebView 以了解如何在那里设置属性。

-凯文

【讨论】:

    【解决方案2】:

    尝试将其添加到 YourProjectAppDelegate.m

    // ...
    
    - (void)webViewDidStartLoad:(UIWebView *)theWebView 
    {
        theWebView.dataDetectorTypes = UIDataDetectorTypeAll ^ UIDataDetectorTypePhoneNumber;    
        return [ super webViewDidStartLoad:theWebView ];
    }
    
    // ...
    

    为我做了诀窍..

    【讨论】:

      【解决方案3】:

      好的。经过一番折腾后,我想我找到了一个奇怪的工作。使用 dataDetectorTypes 的问题是它将禁用整个 uiwebveiw 的电话号码检测。

      在尝试了 span 和标签上的 datadetectors="off" 和 x-apple-data-detectors="false" 属性后,我终于偶然发现了一些似乎阻止电话号码检测的东西。

      如果我将文本包装在带有 href="#" 的 a 标记中,苹果似乎不会理会它。

      【讨论】:

        【解决方案4】:

        我们的 JQM/Cordova 应用程序也遇到了类似的问题。我们在应用程序中内置了一个计算器,只要金额超过七位数,数据就会显示为蓝色,下方有下划线,当您点击数据时,会出现一个弹出窗口,让您可以选择调用。我们只是添加了 开始问题中描述的元标记并且它有效。

        在这里添加一些想法,以防其他人在 Safari 将 7 个字符串数据检测为电话号码时遇到类似问题。

        【讨论】:

        • 能否仅针对特定视图而不是整个应用关闭?
        【解决方案5】:

        试试这个代码,

        webView.dataDetectorTypes = UIDataDetectorTypeNone;
        

        这可能会对你有所帮助。

        【讨论】:

          猜你喜欢
          • 2011-07-08
          • 1970-01-01
          • 2011-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-09
          相关资源
          最近更新 更多