IOS 系统打电话事件的监听与状态获取

您所在的位置:网站首页 ios13怎么挂断电话 IOS 系统打电话事件的监听与状态获取

IOS 系统打电话事件的监听与状态获取

2024-07-09 21:34| 来源: 网络整理| 查看: 265

我们可以调用iOS提供的接口拨打电话:

NSString *tel = @"telprompt://"; NSString * number = [tel stringByAppendingString:phoneNubmer]; NSURL * telURL = [NSURL URLWithString: number]; [_callView loadRequest:[NSURLRequest requestWithURL:telURL]]; [self.view addSubview:_callView];

调用之后会弹出iOS的alert,询问是否要拨号,那么我们怎么知道用户是点击了哪个选项呢,可以使用电话事件监听的包和方法:

导入CoreTelephony.framework,

@property (nonatomic, strong) CTCallCenter *center;

这个一定要声明为属性,如果在某个函数中做声明的话,ARC就会自动在函数执行结束的时候将其释放掉。

_center = [[CTCallCenter alloc] init]; _center.callEventHandler = ^(CTCall *call) { if ([call.callState isEqualToString:@"CTCallStateDialing"]) { 。。。 } };

call.callState 这个属性记录了电话操作的状态,具体都有哪些值可以通过头文件得知。

#import #import

@property (nonatomic, strong) CTCallCenter *callCenter;

CTCallCenter *callCenter = [[CTCallCenter alloc] init]; callCenter.callEventHandler = ^(CTCall* call) { if ([call.callState isEqualToString:CTCallStateDisconnected]) { NSLog(@"挂断了电话咯Call has been disconnected"); } else if ([call.callState isEqualToString:CTCallStateConnected]) { NSLog(@"电话通了Call has just been connected"); } else if([call.callState isEqualToString:CTCallStateIncoming]) { NSLog(@"来电话了Call is incoming"); } else if ([call.callState isEqualToString:CTCallStateDialing]) { NSLog(@"正在播出电话call is dialing"); } else { NSLog(@"嘛都没做Nothing is done"); } };



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3