【问题标题】:How do I detect availability of tel: uri scheme in a web app?如何在 Web 应用程序中检测 tel: uri 方案的可用性?
【发布时间】:2011-07-01 17:26:10
【问题描述】:

我希望使用 tel: uri 方案 (rfc3966) 使电话号码可在 Web 应用程序中的移动设备上链接,但我不想将它们链接到无法处理 tel: 方案的设备上- 没有电话功能的台式机或移动设备(例如 iPad!)

有什么方法可以检测到这一点吗?如果可能的话,我宁愿避免用户代理嗅探。

iPhone 似乎有一个 canOpenURL 函数,应用程序可以使用它来测试它,但我想从 Javascript 中获得相同的行为。

【问题讨论】:

    标签: iphone mobile-website browser-detection tel


    【解决方案1】:

    没有检测浏览器对 tel URI 方案支持的标准方法。

    但是您可以使用用户代理嗅探库,例如优秀的WURFL library 可以检测到此功能。

    【讨论】:

    • 您想知道这种情况在过去一年中是否发生了很大变化? (我怀疑不是。)谢谢你的回答。
    • 据我所知,如果能看到某种 JavaScript 支持来检测这一点会很高兴。最好的办法是将电话号码放在页面上,并希望电话将其解释为电话号码并将其转换为 tel: 链接的版本。
    • 是的,虽然丑陋的部分不仅在于它在手机上是否有用,还在于桌面浏览器是否会做一些笨拙的事情。 Desktop Firefox 为用户提供了一个很好的对话框,解释 URL 方案无法识别,这当然完全浪费在普通人只是看一个页面上。再次,谢谢!
    • User-Agent 嗅探不是答案,用户代理字符串无法确定设备是否具有该功能,根本没有提供足够的信息。是否安装了 Skype,这个 android 设备是平板电脑还是在电脑上运行?
    【解决方案2】:

    iPhone 会自动识别普通文本是否为电话号码格式,并将其转换为可点击的链接。您无需付出任何努力。

    ie 如果您的网站上有文本“+61 (0)7 3000 0000”,iPhone 会知道它是一个数字并将其设为链接。

    【讨论】:

    • 其他移动开发者告诉我,最好关闭此功能,因为它往往会积极地将其他内容变成可点击的链接 - 例如邮政编码、邮政信箱和其他长字符串数字。该建议可能已过时 - 任何人都知道这是否仍然是一个问题?
    • @Korny 这是一个问题/功能,取决于您认为它有多有用。可以使用<meta name="format-detection" content="telephone=no"> 将其禁用
    【解决方案3】:

    MobileESP 项目具有适用于多种服务器端语言的 API,以及客户端 JavaScript API。

    哦!而且它是免费和开源的(我相信是 Apache 许可证)

    【讨论】:

    • 这基本上是用户代理嗅探。
    猜你喜欢
    • 2016-06-19
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2011-03-13
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多