我已经实现了通过点击我酒店的一排描述性表格来拨打电话的能力;我通过在方法“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,我确认该号码已正确读取,因此确实如此(确实在控制台上显示电话:1-408-555-5555)。问题是什么都没发生!!!
此时(也基于我在网上看到的内容)我怀疑我无法在模拟器上测试这个东西!我做错了什么或者我不能在模拟器上测试这个“URL方案”?!
答案 0 :(得分:5)
要扩展seanny94的答案:模拟器不支持很多iOS的URL方案,包括电话,地图,Youtube和SMS应用程序。对于没有手机功能的iPod touch和iPad等设备也是如此;在通过-openURL:
使用任何网址方案之前,您应该使用-canOpenURL:
检查是否支持该方案,该方案将返回YES
或NO
,具体取决于当前设备是否支持该网址你正在使用的计划。
答案 1 :(得分:2)
您无法在模拟器中测试电话(或任何基于电话的功能)。没有支持它。
答案 2 :(得分: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]];