我正在建立一个应用程序,让您拨打荷兰的不同服务中心.问题是他们中的一些具有不同的商业格式(如0800-xxxx),设备无法拨打电话.
代码如下所示:
代码如下所示:
if ([[UIApplication sharedApplication] canOpenURL:phoneURL]) { [[UIApplication sharedApplication] openURL:phoneURL]; }
你有什么想法如何格式化号码或打电话,无论是格式?
编辑:这是电话号码的创建方式:
NSString *phoneNumberString = phoneNumber; // dynamically assigned NSString *phoneURLString = [NSString stringWithFormat:@"telprompt:%@",phoneNumberString]; NSURL *phoneURL = [NSURL URLWithString:phoneURLString];
解决方法
我使用这个代码,它工作:
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""]; NSString *escapedPhoneNumber = [cleanedString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *phoneURLString = [NSString stringWithFormat:@"telprompt:%@",escapedPhoneNumber]; NSURL *phoneURL = [NSURL URLWithString:phoneURLString]; if ([[UIApplication sharedApplication] canOpenURL:phoneURL]) { [[UIApplication sharedApplication] openURL:phoneURL]; }