问题 禁用iPad桌面Web链接上的电话号码检测?


我正在开发一个Web应用程序,它将作为全屏应用程序从iPad上的桌面图标启动。该 手机链接上的Apple文档 建议使用此元标记:

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

但是,这似乎不起作用。是否有任何其他HTML / CSS / JavaScript机制来控制此行为?

随机注入锚标签导致了很多CSS错误。

解决方法

我发现工作的一个方法就是注入特殊的空格字符,但是在输出中转换所有数据的想法并不能让我高兴。这些角色将自己的问题带到了桌面上。这样做会因AJAX和JavaScript转换而变得更加复杂。

再现

重现步骤:

  1. 在iPad Safari上打开页面
  2. 使用 添加到主屏幕 书签功能
  3. 启动 主屏幕 图标

样本页面:

<!DOCTYPE html>
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name = "format-detection" content = "telephone=no">
<title>Telephone detect</title>
</head>
<body>
expected:
<a href="tel:1555555">1555555</a>
<br />
bad: 1555555
<br />
bad: &#x31;&#x35;&#x35;&#x35;&#x35;&#x35;&#x35;
<br />
inconvenient: 1&#xFEFF;555555
</body>
</html>

笔记

这个问题 似乎是相关的,但它缺乏细节,我不确定iPhone上的行为是否相同。这是一个Web应用程序,没有本机组件。 iPad版本3.2.2。


3381
2017-11-24 15:22


起源

注意:自我发布此问题以来已经过了很多年,我无法评论该问题是否存在于更新的软件版本中,也无法验证任何建议的解决方案。 - McDowell


答案:


meta标签在asp.net中适用于我。我的猜测是它不适用于OP,因为HTML格式不正确。非IE,Mozilla浏览器存在格式错误的XML / Html问题。更改

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

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


7
2017-07-21 15:14



标记是HTML 5,其中 / 对...没有影响 虚空元素 如 meta。我不再在这个领域工作,没有iPad可以测试,所以无法检查行为 规范。 - McDowell


在tel link load之后放这个

if (navigator.userAgent.match(/(iPhone|Android|BlackBerry)/)) {
//this is the phone

} else if (navigator.userAgent.match(/(iPod|iPad)/)) {
    $('a[href^=tel]').click(function(e){
       e.preventDefault();
    });
} else {
 //this is the browser

    $('a[href^=tel]').click(function(e){
        e.preventDefault();
    });
}

3
2018-06-07 14:37



为什么第二个if块是必要的?它不和else块做同样的事吗? - webXL


元标记将起作用:

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

这是Safari浏览器没有正确显示更新的页面。对页面进行一些其他文本更改并刷新,将显示更改。如果您已经按照这种方式查看,只需添加元标记仍会显示将该号码解释为电话号码的页面。


2
2017-07-17 07:57



仅供参考:缩进代码4格式的空格。 - McDowell
TY,新的。 - Beta Projects


好的,修好了..添加一个 <a href link> 没有文字装饰的样式...我在asp.net中使用asp:超链接控件,它在3.2上工作,所以不确定为什么它在4.2中停止,但使用标准链接工作。


1
2017-12-04 21:42



我很欣赏这种努力,这个解决方案可能适合某些人,但它引入了其他必须克服的问题(比如将事情变成tabstops;可访问性问题 - 这些东西仍然需要在其他浏览器上运行)。 - McDowell