您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页iOS监听App内部拨打电话后的状态改变

iOS监听App内部拨打电话后的状态改变

来源:二三四教育网

1.0首先知道怎么去拨打电话 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];

2.0 iOS10后此方法被遗弃,并且打电话的弹窗出现时有延迟,优化下

NSString *callPhone = [NSString stringWithFormat:@"telprompt://%@", content_mobile];

NSComparisonResult compare = [[UIDevice currentDevice].systemVersion compare:@"10.0"];

if (compare == NSOrderedDescending || compare == NSOrderedSame) { // 大于等于10.0系统使用此openURL方法

            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone] options:@{} completionHandler:nil];

} else {

            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];

}

#import <CallKit/CallKit.h>

@property(nonatomic,strong)CXCallObserver *callObserver;

然后就是实例化变量

self.callObserver = [[CXCallObserver alloc] init];

[self.callObserver setDelegate:self queue:dispatch_get_main_queue()];

最后实现代理方法

-(void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call{

      if (call.isOutgoing) {

             DLog(@"电话播出");

                         if (call.hasConnected) {

                                   DLog(@"电话接通");

                         }else if (call.hasEnded){

                                  DLog(@"电话挂断");

                       }else if (call.isOnHold){

                                   DLog(@"无人接听挂断"); }

       }else{

                  DLog(@"other error");

     }

}

到此结束,如有疑问或者文章有错误,欢迎指正

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务