iOS 開發----- 撥打電話

iPhone 10.2( 手機系統版本 > 10.2)之后,撥打電話的方法:

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://XXXXXXXXX"]]];

會自動彈一個是否撥打電話的彈框。這就會導致一個問題,如果在10.2之前,撥打電話之前,自己寫了一個彈框提示,那么在10.2之后,會彈出兩個彈框,為了解決這個問題,需要做系統版本號的判斷:

#define IOS103 [[[UIDevice currentDevice]systemVersion] floatValue] >=10.3

//判斷手機系統版本,版本號低于10.3,就采用自定義彈框,否則就用系統彈框

if(IOS103) {

// openURL這個方法會阻塞主線程,導致打電話的彈框會延時2s彈出

? ? ? ?dispatch_async(dispatch_get_global_queue(0,0), ^{

? ? ? ? ? ? [[UIApplicationsharedApplication]openURL:[NSURLURLWithString [NSStringstringWithFormat:@"tel://0898-31862016"]]];

});

}else{

? ? ? ? NSString*mobile =@"XXXXXXXXX";

? ? ? ? ?UIAlertView*alertView = [[UIAlertViewalloc]initWithTitle:mobilemessage:nildelegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"呼叫",nil];

? ? ? ? ? [alertViewshow];

}

自定義彈框代理:

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

if(buttonIndex==1) {

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://XXXXXXX"]]];

return;

}else

{

return;

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容