4

我已经实现了通过单击我酒店的一行描述性表格视图来拨打电话的功能;我通过在方法“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方案”?!

4

3 回答 3

5

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

于 2010-07-19T16:17:04.143 回答
2

您无法在模拟器中测试电话(或任何基于电话的功能)。没有人支持它。

于 2010-07-19T16:07:59.440 回答
0

试试这个有用的代码

删除代码的空格

NSString *trimmedString = [yourNumberString stringByReplacingOccurrencesOfString:@" " withString:@""];

确认后呼叫代码

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:trimmedString];

直接调用代码

NSString *phoneNumber = [@"tel://" stringByAppendingString:trimmedString];
NSLog(@"Number : %@",phoneNumber);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
于 2013-09-17T11:09:10.090 回答