【问题标题】:"href:tel" link doesn't open alert view in IOS“href:tel”链接不会在 IOS 中打开警报视图
【发布时间】:2017-05-26 15:30:06
【问题描述】:

我正在基于 Cordova 平台并使用 ExtJS 框架为不同平台构建一个 Web 应用程序。目前我正在尝试使用 href="tel:0123456789" 链接电话号码,它在 Android 和 Window 上运行良好。

但是,当我在IOS中点击电话链接时,它并没有显示默认警报,而是在没有提示的情况下启动拨号。这真的很奇怪,因为即使在Apple的URL Scheme Reference中也是这样说的:

当用户点击网页中的电话链接时,iOS 会显示一条警报,询问用户是否真的要拨打该电话号码,如果用户接受,则开始拨号。

我试过了:

•删除 HTML 中的锚标记并让 Safari 自动链接电话号码。 - 它确实成功地锚定了页面上的所有数字,但是当我再次点击它们时,它会立即呼叫而没有警报确认。

•使用 onclick="window.location.href = {phonenumber}" - 电话号码甚至没有关联。

•使用“telprompt”代替“tel” - Apple 不再支持“telprompt”

我在 Iphone 6 和 5 上进行了测试,结果相同。

那么如何让IOS在调用'href=tel:'标签之前显示确认提示呢?

【问题讨论】:

    标签: javascript html ios cordova extjs


    【解决方案1】:

    在 config.xml 中:

    <allow-intent href="tel:*" />
    

    在html中:

    <a href="tel:1-xxx-xxx-xxxx">1-xxx-xxx-xxxx</a>
    

    【讨论】:

    • 感谢您的回复,但不幸的是它仍然在没有确认警报的情况下打电话。
    【解决方案2】:

    好的,我终于找到了解决方案... 基本上除了HristoEftimovSteve 的答案之外,我还需要在我的config.xml 中包含&lt;allow-navigation href="tel:*" /&gt;

    但是,这会破坏 Android 的代码,所以我必须只为 ios 实现它。所以&lt;platform name="ios"&gt;&lt;allow-intent href="tel:*" /&gt;&lt;allow-navigation href="tel:*" /&gt;&lt;/platform&gt;

    此外,我必须从 onclick 事件中调用电话链接:&lt;a onclick=" onPhoneNumberClick(' + arrayPhoneNumbers[i] + ')" href="javascript:void(0);"&gt;

    调用方法 onPhoneNumberClick,我在 window.open 中打开链接如下:window.open("tel:"+number);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 2020-03-30
      • 2019-07-26
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多