Dep*_*o B 5 objective-c ios callkit
我正在将现有的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;
}
Run Code Online (Sandbox Code Playgroud)
这就是配置的样子:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
两个回调都已实现:
- (void)providerDidBegin:(CXProvider *)provider {
NSLog(@"Begun");
}
- (void)providerDidReset:(CXProvider *)provider {
NSLog(@"Reset");
}
Run Code Online (Sandbox Code Playgroud)
Vla*_*llo 12
在我的情况下,同样的问题是由于Info.plist文件中缺少VOIP后台模式
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>voip</string>
</array>
Run Code Online (Sandbox Code Playgroud)
由于某些未知原因,XCode 9不允许使用"功能"选项卡设置此背景模式.
| 归档时间: |
|
| 查看次数: |
1904 次 |
| 最近记录: |