NSString *urlStr = [NSString stringWithFormat:@"tel://%@",@""];//contactNumber
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
询问是否要拨号,那么我们怎么知道用户是点击了哪个选项呢,可以使用电话事件监听的包和方法:
导入CoreTelephony.framework,
@property (nonatomic, strong) CTCallCenter *center;
这个一定要声明为属性,如果在某个函数中做声明的话,ARC就会自动在函数执行结束的时候将其释放掉。
[objc] view plain copy
- _center = [[CTCallCenter alloc] init];
- _center.callEventHandler = ^(CTCall *call) {
- if ([call.callState isEqualToString:@"CTCallStateDialing"]) {
- 。。。
- }
- };
call.callState 这个属性记录了电话操作的状态,具体都有哪些值可以通过头文件得知。
[objc] view plain copy
- #import
- #import
[objc] view plain copy
- @property (nonatomic, strong) CTCallCenter *callCenter;
[objc] view plain copy
- 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");
- }
- };