href = tel:555链接无法在移动Safari中使用

时间:2011-10-10 15:49:43

标签: html ios html5 hyperlink mobile-safari

我正在设计移动页面并使用以下(标准,我相信)代码来拨打电话号码。

<a href="tel:555-1234567" class="call"><img src="graphics/call-icon.gif" alt="call-icon" width="45" height="50"></a>

这在android中运行良好,但Mobile Safari我收到以下错误:

  

无法打开页面因为地址是,Safari无法打开页面   无效

7 个答案:

答案 0 :(得分:14)

你的加价很好,它适用于我的iPhone(3GS,运行4.3.5)。它在iOS模拟器上不起作用(是的,有“无法打开页面 - Safari无法打开页面,因为地址无效”错误),但是我不会指望它,因为你无法制作调用它(或者是旧版本的iOS有问题)。

答案 1 :(得分:9)

<head>放置:

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

来自Safari HTML Reference

  

启用或禁用可能的自动检测   iOS上的Safari网页中的电话号码。语法讨论   默认情况下,iOS上的Safari会检测任何格式化为手机的字符串   编号并使其成为调用该号码的链接。指定   telephone = no禁用此功能。可用性在iOS 1.0中可用   然后。支持级别Apple扩展。

答案 2 :(得分:6)

要在Safari / iOS中使用电话号码,您需要正确格式化电话,就像在旧广告中列出一样。

<a href="tel:1-555-123-4567" class="call">
----- OR -----
<a href="tel:15551234567" class="call">

答案 3 :(得分:2)

您可能想在超链接标记中添加target="_blank"

对我有用。

在此link上了解有关target="_blank"的更多信息

答案 4 :(得分:0)

如果你的电话号码仍然没有出现在safari上我有完全相同的问题,我选择了如果你不使用网络友好字体它将不会显示尝试并更改你的字体的数字到Verdana或Arial。我使用谷歌网络字体应该是网络友好的,但即使这打破了我的号码。

希望这有效。

Gimme如果愿意,可以投票;)

答案 5 :(得分:0)

以下内容对我有用,希望对您有所帮助。

<a href="javascript:void(0)" onclick="window.location='tel:8005555555'" class="call">800 555 5555</a>

它在ios chrome和safari上均应工作。

答案 6 :(得分:0)

这里是 2021 年更新,我正在为 android 和 ios 构建一个 Ionic 应用程序,并且在获取手机链接在 safari 中工作时遇到了麻烦,我所做的解决这个问题的方法是创建一个小型实用程序函数(打字稿)以这种方式清除任何字符的电话号码:

cleanPhoneNumber(text: string): string {

    const cleanText = text.trim()
        // INITIAL CHAR
        .replace(/\+/g, '')
        // COMMON SEPARATORS
        .replace(/\-/g, ' ').replace(/\./g, ' ')
        // RARE CHARACTERS
        .replace(/\_/g, '').replace(/\,/g, '').replace(/\:/g, '').replace(/\;/g, '').replace(/\~/g, '');

    return cleanText;
}

像“+”或“-”这样的字符会导致 safari 无法正确处理 href:tel(尽管 Chrome 或 Firefox 可以正常工作)

希望这能帮助像我这样的新手为 ios 构建应用程序