【发布时间】:2017-04-19 18:48:33
【问题描述】:
我正在将现有的 VoIP 应用程序转换为 Callkit。我有很多代码,但是当我初始化 CXProvider 时,它会调用providerDidBegin,然后立即调用providerDidReset。它没有给出理由。在那之后,我无法注册我的拨出电话,因为我的提供商未激活。
我已尝试查看证书、设置等,但基本上我不需要的 VoIP 应用程序似乎已经拥有更多。
CallKit调用reset方法如下:
CallKit`__42-[CXProvider handleConnectionInterruption]_block_invoke:
当我深入挖掘它的来源时,它与 NSXPCConnection 相关。这是什么连接,我需要如何设置?
当然连接没有中断。
这就是我初始化我的委托的方式:
- (id)init {
self = [super init];
self.configuration = [[ProviderConfiguration alloc] init];
self.provider = [[CXProvider alloc] initWithConfiguration:self.configuration];
[self.provider setDelegate:self queue:dispatch_get_main_queue()];
return self;
}
这是配置的样子:
- (instancetype)init {
self = [super initWithLocalizedName:@"MyCompany"];
self.supportsVideo = NO;
self.maximumCallsPerCallGroup = 1;
self.supportedHandleTypes = [[NSSet alloc] initWithObjects:[NSNumber numberWithInt:(int)CXHandleTypePhoneNumber], nil];
self.maximumCallGroups = 1;
self.maximumCallsPerCallGroup = 5;
return self;
}
两个回调都实现了:
- (void)providerDidBegin:(CXProvider *)provider {
NSLog(@"Begun");
}
- (void)providerDidReset:(CXProvider *)provider {
NSLog(@"Reset");
}
【问题讨论】:
标签: ios objective-c callkit