比方说,我们有一个简单的应用程序,它有一个视图控制器和一个单条按钮项,可以打开CNContactPieckerViewController
。因此,我进入选择视图,选择联系人,输入详细信息视图。如果在我的视图控制器中有contactPicker:didSelectContactProperty:
委托方法的实现,按下call按钮将调用委托方法,CNContactPickerViewController
将被取消,对于调用,我需要在委托方法中手动处理所有事情。但是,如果contactPicker:didSelectContactProperty:
委托方法没有实现,就会进行呼叫(根据您选择的是什么类型的呼叫-- GSM、WhatsApp或其他什么),但是CNContactPickerViewController
不会被拒绝。
问题
是否有可能在不失去处理调用的功能的情况下拒绝CNContactPickerViewController
。
发布于 2017-08-12 07:47:54
您可以在两种状态的调用连接和断开时添加观察者,并可以取消CNContactPickerViewController
控制器。但我建议使用contactPicker:didSelectContactProperty :
委托来实现此功能。
1.导入CallKit框架
#import <CallKit/CXCallObserver.h>
#import <CallKit/CXCall.h>
2.符合CXCallObserverDelegate
协议。
3.强烈引用CXCallObserver
对象,如
@property (nonatomic, strong) CXCallObserver *callObserver;
4.在表示callObserver对象时初始化CNContactPieckerViewController
对象,如
CXCallObserver *callObserver = [[CXCallObserver alloc] init]; [callObserver setDelegate:self queue:nil]; _callObserver = callObserver;
5.最后实现委托方法。
-(void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
if (call.hasConnected) {
NSLog(@"********** voice call connected **********/n");
} else if(call.hasEnded) {
[(your CNContactPieckerViewController object) dismissViewControllerAnimated:YES completion:nil];
NSLog(@"********** voice call disconnected **********/n");
}
}
https://stackoverflow.com/questions/45635084
复制相似问题