iOS 10撥打系統(tǒng)電話發(fā)現(xiàn)彈出框會延遲2s左右出現(xiàn),很不爽,研究了一下,發(fā)現(xiàn)是openURL在http://blog.csdn.net/syg90178aw/article/details/68926603及其之后會阻塞主線程
所以,撥打電話前,做個判斷,來代碼,
方案一:
```
//?撥打電話
+?(void)callPhone:(NSString*)phoneNum?{
if(phoneNum.length==0)?{
return;
}
NSString*callPhone?=?[NSStringstringWithFormat:@"telprompt://%@",phoneNum];
NSComparisonResult?compare?=?[[UIDevicecurrentDevice].systemVersioncompare:@"10.0"];
if(compare?==?NSOrderedDescending?||?compare?==?NSOrderedSame)?{
///?大于等于10.0系統(tǒng)使用此openURL方法
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:callPhone]options:@{}completionHandler:nil];
}else{
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:callPhone]];
}
}
```
方案二
```
//?撥打電話
+?(void)callPhone:(NSString*)phoneNum?{
if(phoneNum.length==0)?{
return;
}
NSString*callPhone?=?[NSStringstringWithFormat:@"telprompt://%@",phoneNum];
dispatch_async(dispatch_get_global_queue(0,0),?^{
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:callPhone]];
});
}
```
關(guān)于撥打電話的方法,自己憑喜好選擇,導(dǎo)致彈出框延遲的原因,目前初步診斷就是openURL在iOS 10及其之后會阻塞主線程
原文:http://blog.csdn.net/syg90178aw/article/details/68926603