美文网首页
iOS 开发----- 拨打电话

iOS 开发----- 拨打电话

作者: 奋斗的小码农 | 来源:发表于2017-06-19 11:05 被阅读0次

    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;

    }

    }

    相关文章

      网友评论

          本文标题:iOS 开发----- 拨打电话

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