我写了下面的拨打电话代码,按下通话键后需要9-10秒打开拨号屏幕。
NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",phoneURLString]];
[[UIApplication sharedApplication] openURL:url];
还有其他方式可以打电话吗?或者我如何减少打开拨号屏幕所需的时间?
答案 0 :(得分:0)
这看起来像是一个线程问题。这个代码是从主线程调用的吗?如果不是,则这是一个问题:UIKit不是线程安全的,因此您必须执行主线程中的所有操作:
NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",phoneURLString]];
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});