“href:tel”链接不会在 IOS 中打开警报视图
Posted
技术标签:
【中文标题】“href:tel”链接不会在 IOS 中打开警报视图【英文标题】:"href:tel" link doesn't open alert view in 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:'标签之前显示确认提示呢?
【问题讨论】:
【参考方案1】:在 config.xml 中:
<allow-intent href="tel:*" />
在html中:
<a href="tel:1-xxx-xxx-xxxx">1-xxx-xxx-xxxx</a>
【讨论】:
感谢您的回复,但不幸的是它仍然在没有确认警报的情况下打电话。【参考方案2】:好的,我终于找到了解决方案...
基本上除了HristoEftimov 和Steve 的答案之外,我还需要在我的config.xml 中包含<allow-navigation href="tel:*" />
但是,这会破坏 Android 的代码,所以我必须只为 ios 实现它。所以<platform name="ios"><allow-intent href="tel:*" /><allow-navigation href="tel:*" /></platform>
此外,我必须从 onclick 事件中调用电话链接:<a onclick=" onPhoneNumberClick(' + arrayPhoneNumbers[i] + ')" href="javascript:void(0);">
调用方法 onPhoneNumberClick,我在 window.open 中打开链接如下:window.open("tel:"+number);
【讨论】:
以上是关于“href:tel”链接不会在 IOS 中打开警报视图的主要内容,如果未能解决你的问题,请参考以下文章
href=tel:555 链接在移动 Safari 中不起作用