美文网首页
iOS 拨打电话卡顿问题解决

iOS 拨打电话卡顿问题解决

作者: FieryDragon | 来源:发表于2020-03-03 19:45 被阅读0次

通过bugly日志卡顿分析发现有很多日志显示在拨打电话时有卡顿现象,通过分析发现卡顿设备为10.2以上的10.*系列系统,在网上查了一些解决方法,也遇到一些坑,在此将解决方式做个记录,希望能帮助遇到相同问题的同学。

卡顿修改前拨打电话代码

    NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:+86%@",tel];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

原因:
在iOS10.2之前没问题,没有提示直接拨打,但是在iOS10.2后新增弹出提示,弹出提示有延迟。

第一种解决方式:

    NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:+86%@",tel];
    dispatch_async(dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    });

结果:卡顿现象有所下降,但是仍有卡顿上报。

第二种解决方法:
调用iOS10.0以后新增方法 openURL:options:completionHandler:

    NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:+86%@",tel];
    if (@available(iOS 10.0, *)) {
        /// 10.0以上系统使用此方法
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str] options:@{} completionHandler:nil];
    } else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    }

结果:无卡顿上报,解决。

相关文章

网友评论

      本文标题:iOS 拨打电话卡顿问题解决

      本文链接:https://www.haomeiwen.com/subject/skucoctx.html