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;
}
}
网友评论