如何在手机网页上点击链接时触发电话呼叫

579

我需要为移动设备构建一个网页。我唯一还没有解决的问题是:如何通过点击文本来触发电话呼叫?

是否有特殊的URL,就像邮件的mailto:标签一样?

不希望使用针对特定设备的解决方案。

我知道iPhone会自动识别电话号码并创建链接,但如果这也适用于图像以及大多数移动设备,那将是很好的。

7个回答

1022

大多数现代设备支持tel:协议。所以使用<a href="tel:555-555-5555">555-555-5555</a>就可以了。

如果你想在图片上使用它,<a>标签可以像其他正常情况一样处理其中的<img/>,例如: <a href="tel:555-555-5555"><img src="path/to/phone/icon.jpg" alt="Call 555-555-5555" /></a>


13
这个降级对于桌面端有什么影响?显然你不想在桌面端展示链接,对吧?或者我需要进行浏览器嗅探并且去掉封闭标签? - 3Dom
13
请尝试这个:试一试。它会启动或请求你的手机程序。 - Cees Timmerman
1
@3Dom 在桌面版Aurora 29.0a2 (2014-02-07)中没有问题。您可以使用图像链接进行调用(请参见Andrew的答案),并在其旁边以纯文本形式显示数字。 - Cees Timmerman
2
供日后参考:在OS X Yosemite及以上版本中,这将启动Facetime应用程序,并且如果用户有iPhone,则可以使用他们的台式机/笔记本电脑进行实际通话。 - Jeff Huijsmans
9
你好,使用Skype时,请不要忘记像这样加上加号和国家代码: +1-555-555-5555,这对于快速拨号非常重要。 - Samuel Ramzan
显示剩余4条评论

80

正确的URL方案是[number],因此您需要执行

<a href="tel:5551234567"><img src="callme.jpg" alt="Call 5551234567" /></a>


49

为了完整起见,想在这里添加一个答案。

<a href="tel:1234567">Call 123-4567</a>

在大多数设备上都能正常使用。但是,在桌面设备上,当您单击它时,它将显示为一个不起作用的链接,因此您应该考虑使用 CSS 仅在移动设备上有条件地显示它。

此外,您应该知道 Skype(相当受欢迎)默认使用不同的语法(但可以通过参数设置为使用 tel:)。

<a href="callto:1234567">Call 123-4567</a>

然而,我认为在最新的移动浏览器中(我确定安卓平台上是这样),tel语法应该提供一个弹出窗口,列出可用于完成呼叫操作的应用程序。


4
“tel”协议是否适用于Skype,还是只有他们的“callto”协议可用? - Hutch Moore

26

可点击的智能手机链接代码:

以下链接可用于创建可点击的电话链接。您可以复制下面的代码并将其粘贴到您的网页中,然后编辑电话号码。该代码可能无法在所有手机上使用,但适用于iPhone、Droid / Android和Blackberry。

<a href="tel:1-847-555-5555">1-847-555-5555</a>

电话号码链接可以像上面展示的那样带有破折号,也可以像下面的例子一样没有破折号:

Phone number links can be used with the dashes, as shown above, or without them as well as in the following example:


<a href="tel:18475555555">1-847-555-5555</a>

只要在电话号码设置为 "tel:18475555555",链接中的任何文本都可以使用,例如:

<a href="tel:18475555555">Click Here To Call Support 1-847-555-5555</a>

以下是可点击的电话超链接,您可以查看。在大多数非电话浏览器中,此链接将会显示“网页无法显示”错误或不会发生任何事情。

注意:iPhone Safari浏览器将自动检测页面上的电话号码,并将文本转换为呼叫链接,而不使用此页面上的任何代码。

WTAI智能手机链接代码: WTAI或“无线电信应用程序接口”链接代码如下所示。这个代码被认为是正确的移动电话协议,可在Droid等智能手机上运行,但可能对iPhone上的Apple Safari不起作用,建议使用上面的代码。

<a href="wtai://wp/mc;18475555555">Click Here To Call Support 1-847-555-5555</a> 

7
基本上,使用一个带有指向电话号码的 tel: 前缀的 <a> 元素和 href 属性。请注意,加号可用于指定国家代码,连字符只是为了方便人眼而已。 MDN Web 文档

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Creating_a_phone_link

HTML <a>元素(或锚元素),连同其href属性,可创建到其他网页、文件、同一页面内的位置、电子邮件地址或任何其他URL的超链接。

[...]

提供电话链接对于查看Web文档和连接到手机的笔记本电脑的用户非常有帮助。

<a href="tel:+491570156">+49 157 0156</a>

IETF文档

https://www.rfc-editor.org/rfc/rfc3966

电话号码的"tel" URI

"tel" URI有以下语法:

telephone-uri = "tel:" telephone-subscriber

[...]

示例

tel:+1-201-555-0123:这个URI指向美国的一个电话号码。连字符用于使号码更加易读,它们分隔了国家、区号和用户号码。

tel:7042;phone-context=example.com:该URI描述了在上下文"example.com"内有效的本地电话号码。

tel:863-1234;phone-context=+1-914-555:该URI描述了在特定电话前缀内有效的本地电话号码。


2

只需使用HTML锚点标签<a>,并以tel:开头的href属性即可。建议在电话号码前加上国家代码。请注意以下示例:

<a href="tel:+989123456789">NO Different What it is</a>

在这个例子中,国家代码是+98

提示:它非常适合手机,我知道tel:前缀在macOS上调用FaceTime,但在Windows上我不确定,但我猜测它会导致启动Skype。

更多信息:您可以访问支持浏览器的URL方案列表了解所有href值前缀。


0

目前(2021年),如果要在PC或平板电脑和Android上工作(尚未在IOS上进行测试,但应该可以正常工作),您需要将data-rel =“external”添加到“a”标记中,例如:

<a href="tel:+576015000000" data-rel="external">Call Me...</a>

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