iOS 10 Callkit 不显示来电 UI

iOS 10 Callkit does not show incoming call UI

我刚刚在我们的 VOIP 应用程序中实现了 CallKit,但我正在努力让来电显示 UI。

在我的实验中,我刚刚创建了一个应该显示来电的简单方法 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。有什么我想念的吗?

谢谢

CallKit 无法在 iOS 模拟器中运行,因此您的应用需要 运行 在设备上运行。

此外,我建议将您的应用程序与 Apple 发布的示例代码应用程序 Speakerbox 进行比较,看看您的实施是否有任何遗漏。