ios开发--ios10及其之后拨打系统电话,弹框出现延迟的解决办法
- ios10 拨打系统电话,弹框延迟2s左右出现,研究发现是
openURL
在ios10及其之后
会阻塞主线程。解决方案如下:
方案一:
NSComparisonResult compare = [[UIDevice currentDevice].systemVersion compare:@"10.0"];
if (compare == NSOrderedDescending || compare == NSOrderedSame) {
/// 大于等于10.0系统使用此openURL方法
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:10086"] options:@{} completionHandler:nil];
} else {
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel:10086"]];
}
方案二:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel:10086"]];
});
网友评论