我刚刚将CallKit应用到我们的VOIP应用程序中,但我正在努力让出局呼叫UI显示出来。
在我的实验中,我刚刚创建了一个应该显示来电用户界面的简单方法,见下文:
CXProviderConfiguration * configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Bitcall"];
CXProvider *callkitProvider = [[CXProvider alloc] initWithConfiguration: configuration];
[callkitProvider setDelegate:self queue:nil];
CXCallUpdate *update = [[CXCallUpdate alloc] init];
update.localizedCallerName = @"Ravadam Patel";
[callkitProvider reportNewIncomingCallWithUUID:[NSUUID UUID] update:update completion:^(NSError * _Nullable error) {
if (error) {
NSLog(@"Error: %@", error);
}
}];
所有内容似乎都运行良好,我实际上使用此代码打印出call received
:
- (void)handleCall
{
self.callCenter.callEventHandler = ^(CTCall *call){
if ([call.callState isEqualToString: CTCallStateConnected])
{
//NSLog(@"call stopped");
}
else if ([call.callState isEqualToString: CTCallStateDialing])
{
}
else if ([call.callState isEqualToString: CTCallStateDisconnected])
{
NSLog(@"Call ended");
}
else if ([call.callState isEqualToString: CTCallStateIncoming])
{
NSLog(@"Call received");
}
};
}
但是没有显示来电UI。有什么我想念的吗?
由于
答案 0 :(得分:9)
CallKit无法在iOS模拟器中运行,因此您的应用需要在设备上运行。
另外,我建议您将应用与Apple发布的示例代码应用Speakerbox进行比较,看看您的实施中是否缺少任何内容。