更新到10.3后,我的应用程序使用openURL:options:completionHandler:方法按下我的应用程序中的呼叫按钮后,不再自动拨打电话号码。
相反,每次都会出现提示以确认用户的意图。
根据Apple文档:
tel URL方案用于在iOS设备上启动Phone应用程序并启动拨打指定的电话号码。当用户点击网页中的电话链接时,iOS会显示一条警告,询问用户是否确实要拨打电话号码并在用户接受时启动拨号。当用户在本机应用程序中打开带有tel方案的URL时,iOS不会显示警报并启动拨号而不会进一步提示用户。但是,可以将本机应用程序配置为显示其自己的警报。
根据此信息,提示会显示网页,但不会显示在原生iOS应用中。
这可能是10.3中的错误吗?或者是否需要使用新功能或将新属性包含在我不知道的info.plist中?
感谢。
答案 0 :(得分:16)
这是10.3发行说明中的已知问题。
https://developer.apple.com/library/content/releasenotes/General/RN-iOSSDK-10.3/
<强>的OpenURL 强>
当第三方应用程序在tel://上调用openURL: facetime://或facetime-audio:// URL,iOS会显示提示和 在拨号之前需要用户确认。
它也列在10.3更新的Security content中,所以我假设这是一个新的功能。
iOS中存在一个问题,允许在没有提示的情况下进行呼叫。这个 通过提示用户确认呼叫启动来解决问题。
答案 1 :(得分:2)
这不是第一次,苹果开发者已经重新启动了针对网址方案的此警报?我记得他们做过这种激活,即使是在其他几个早期的更新中,他们还在下一次操作系统更新中回滚。
在10.3.1的情况下,我读到一条消息,在美国有很多911个被欺诈拨打的电话。 https://9to5mac.com/2017/03/06/911-ios-exploit/
在我看来,警告限制已被合并以阻止错误的911拨号。
我有信心,Apple不能经常对API&Schemes实施这种任意改变,这在很大程度上影响了用户的体验。
过去8年,我在商店里有一个快速拨号应用程序。 https://itunes.apple.com/us/app/speed-dial/id306569903?ls=1&mt=8# 在过去的几周里,如此多的用户抱怨这种新的限制再次触摸快速拨号。
目前,我们必须等到Apple在下次更新中修复此已知问题。因为,有100个生产力应用程序,它依赖于URL方案而没有警报方案。