【发布时间】:2009-06-24 23:27:59
【问题描述】:
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 以供审查的一个应用程序。
谁能想出解决这个问题的办法?我目前不知道该怎么做,并试图决定用什么其他方法来处理这个正在开发的新扳手。
我 blogged 对此提出了建议,并建议人们联系 Apple 并让他们了解此问题。我还推荐了一个我和朋友正在考虑的修复方法——那就是使用与位置感知应用程序相同的“授权”;应用知道它的位置感知并询问用户是否可以使用他们的位置。
同样,如果有人对此问题有解决方案(并且在 iPhone SDK 的范围内,不会被 Apple 拒绝),请告诉我;我将不胜感激。
更新:Julian Romero Nieto 对该错误进行了很好的描述,并引用了(更新的)Apple 文档并显示了当前的问题。您可以阅读他在 Oper Radar here 上的帖子。
【问题讨论】:
-
所以您是说确认对话框“破坏”了应用程序?我不确定我是怎么理解的。如果用户点击同意正确,它还在拨号吗?
-
@sif 我可能在我的消息中混淆了呼叫是自动发出的,而不是确认继续;如第二段第一行所述。问题是检查标准的应用程序,例如侦听音频然后呼叫预定义号码的安全应用程序将不再呼叫该号码,因为现在弹出模式确认对话框,等待确认放置电话打电话。
标签: ios objective-c iphone iphone-sdk-3.0