iPhone 3.0 SDK 有一个新引入的问题,以及它如何处理用于自动拨打电话的 NSURL 方法。过去你可以调用一个方法(NSURL),传入一个带有 URL 前缀(tel://、sms 等)的字符串,然后 iPhone 操作系统会将消息发送到设备,例如 iTunes , App Store, Phone, SMS, Mail, Safari, etc... 代码是这样的:
[openURL:[NSURL URLWithString:@"tel://8005551212"]];
当调用该方法时,电话会自动拨打。在 iPhone OS 3.0 中调用该方法时,应用会弹出一个对话框,要求确认通话。这破坏了几个现有的应用程序以及我们刚刚推入 App Store 以供审查的一个应用程序。
谁能想到解决这个问题?我目前不知道该做什么,并试图决定用什么其他方法来处理这把新扳手。
我在博客上对此进行了讨论,并建议人们联系 Apple 并让他们意识到这个问题。我还推荐了一个我和朋友正在考虑的修复方法——那就是使用与位置感知应用程序相同的“授权”;应用程序知道它的位置感知并询问用户是否可以使用他们的位置。
同样,如果有人对此问题有解决方案(并且在 iPhone SDK 的范围内,不会被 Apple 拒绝),请告诉我;我将不胜感激。
更新:Julian Romero Nieto 对错误有很好的描述,并引用了(更新的)Apple 文档并显示了手头的问题。您可以在此处阅读他在 Oper Radar 上的帖子。