我已经实现了通过单击我酒店的一行描述性表格 View 来拨打电话的功能;我通过在方法“didSelectRowAtIndexPath”中编写以下代码来使用 URL 方案:

NSString *phoneNumber=element.phone;
[NSString *phoneNumberScheme = [NSString stringWithFormat:@"tel:%@ ", phoneNumber];
NSlog(phoneNumberScheme);
phoneNumberScheme = [phoneNumberScheme stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumberScheme]];

没有错误!使用 NSlog,我验证了该号码是否正确读取,结果确实如此(控制台上确实显示了 tel:1-408-555-5555)。问题是什么都没发生!!!

在这一点上(也基于我在网上阅读的内容)我怀疑我无法在模拟器上测试这个东西!我是不是做错了什么,或者我不能在模拟器上测试这个“URL 方案”?!

最佳答案

扩展 seanny94 的答案:模拟器不支持很多 iOS 的 URL 方案,包括电话、 map 、Youtube 和 SMS 应用程序的 URL 方案。 iPod touch 和 iPad 等没有电话功能的设备也是如此。在通过 -openURL: 使用任何 URL 方案之前,您应该使用 -canOpenURL: 检查对该方案的支持,这将返回 YESNO 取决于当前设备是否支持您正在使用的 URL 方案。

10-07 20:05