iOS 10撥打系統(tǒng)電話彈出框延遲出現(xiàn)問題的解決
前言
最近在開發(fā)中遇到了一些問題,發(fā)現(xiàn)iOS 10撥打系統(tǒng)電話發(fā)現(xiàn)彈出框會延遲2s左右出現(xiàn),很不爽,研究了一下,發(fā)現(xiàn)是openURL在iOS 10及其之后會阻塞主線程
所以,撥打電話前,做個判斷,下面話不多說了,來一起看看詳細的介紹吧。
示例代碼:
// 撥打電話 + (void)callPhone:(NSString *)phoneNum { if ([ISNULL(phoneNum) length] == 0) { [SVProgressHUD showErrorWithStatus:@"撥打失敗,手機號碼不存在" duration:1.0 dismiss:nil]; return; } NSString *callPhone = [NSString stringWithFormat:@"telprompt://%@", phoneNum]; /// 解決iOS10及其以上系統(tǒng)彈出撥號框延遲的問題 /// 方案一 if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) { /// 10及其以上系統(tǒng) [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone] options:@{} completionHandler:nil]; } else { /// 10以下系統(tǒng) [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]]; } /// 方案二 // dispatch_async(dispatch_get_global_queue(0, 0), ^{ // [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]]; // }); }
關于撥打電話的方法,導致彈出框延遲的原因,目前初步診斷就是openURL在iOS 10及其之后會阻塞主線程,方案二在iOS 11上不起作用
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
iOS開發(fā)存儲應用程序Info.plist知識全面詳解
這篇文章主要為大家介紹了iOS開發(fā)存儲應用程序Info.plist知識全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06iOS10實現(xiàn)推送功能時的注意點和問題總結(jié)
很多朋友都反饋,發(fā)現(xiàn)了iOS9升級到iOS10推送功能不正常的問題,所以這篇文章總結(jié)了一下要點,親們可以根據(jù)以下步驟,逐步排查問題,也可以逐步實現(xiàn)iOS10的推送功能。下面來一起看看吧。2016-09-09淺述iOS11 Xcode 9 按住command 單擊 恢復到從前(直接跳轉(zhuǎn)到定義)
這篇文章主要介紹了 iOS11 Xcode 9 按住command 單擊 恢復到從前(直接跳轉(zhuǎn)到定義)的相關資料,需要的朋友可以參考下2017-10-10iOS實現(xiàn)UIScrollView的無限輪播功能(原理)詳解
在現(xiàn)在的一些App中常常見到圖片輪播器,一般用于展示廣告、新聞等數(shù)據(jù),下面這篇文章主要給大家介紹了關于iOS實現(xiàn)UIScrollView的無限輪播功能(原理)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-09-09iOS App使用設計模式中的模板方法模式開發(fā)的示例
這篇文章主要介紹了iOS應用使用設計模式中的模板方法模式開發(fā)的示例,例子代碼為Objective-C語言,文中還與Java的相關實現(xiàn)進行類比,需要的朋友可以參考下2016-03-03