iOS 10.2之后拨打电话 不弹窗或多弹窗

iOS 10.2 之前,为了交互良好,在调用拨打电话之前会自己设置弹框;在IOS10.2之后系统做了改版,对App调用别的一些权限的时候系统会自己触发弹框,所以需要分版本处理。

  • 注:解决系统有的系统弹2次框,有的系统不弹框。

判定当前的手机系统时候为IOS10.2

- (BOOL)isCurrentMobileSystem10_2 {
    NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
    if ([systemVersion compare:@"10.2" options:NSNumericSearch] == NSOrderedDescending || [systemVersion compare:@"10.2" options:NSNumericSearch] == NSOrderedSame) {
        return YES;
    }
    return NO;
}

点击电话操作

-(void)telephone {
    if ([CommonTools isCurrentMobileSystem10_2]) { 
    //IOS10.2之后
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",COMPANYPHONENUM]]];
    }
    else { 
    //IOS10.2之前
         UIAlertController *alertController = [UIAlertController alertControllerWithTitle:COMPANYPHONENUM message:nil preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
        }];
        UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",COMPANYPHONENUM]]];
        }];
        [okAction setValue:COLORRPLUS forKey:@"_titleTextColor"];
        [cancelAction setValue:COLORFONTBLACK forKey:@"_titleTextColor"];
        [alertController addAction:cancelAction];
        [alertController addAction:okAction];
        [self presentViewController:alertController animated:YES completion:nil];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容