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;
}
}