iOS模拟器中可以使用CallKit接听电话吗?

use*_*594 5 ios callkit

在 iOS 中,可以使用CallKit 的 reportIncomingCall来显示来电 ui 。

就我而言,这在物理设备中按预期工作。我的 iPhone 收到来电提醒,我可以接听电话或拒绝接听电话。

但是,它似乎无法在 iOS 模拟器中运行。更具体地说,reportNewIncomingCall方法调用本身成功,但随后它立即结束(我什至没有看到任何调用警报)。另外,func provider(_ provider: CXProvider, perform action: CXEndCallAction)从CXProviderDelegate中被调用,这意味着调用已经结束。

我在苹果官方文档中找不到是否可以在iOS模拟器中测试CallKit - reportIncomingCall。

奇怪的是,用reportOutgoingCallwith拨出电话CXCallController似乎在模拟器中工作得很好,因为我可以看到绿色状态栏显示在 iPhone 的顶部,当CXStartCallAction完成时。

所以我唯一无法让它工作的是在 iOS 模拟器中使用 CallKit 接收呼叫。这是预期的行为吗?

Ash*_*bry 6

CallKit 完全不能在 iOS 模拟器上运行,既不能接听电话,也不能拨打电话。在模拟器上启动任何CXTransaction包含CXStartCallAction或的内容将立即失败,值为(零)。您必须使用真实设备来测试您的 CallKit 应用程序。CXAnswerCallActionNSError.CodeCXErrorCodeRequestTransactionErrorUnknown

是的,我在任何苹果文档中都找不到提到这一点。在这篇提到模拟器和真机区别的文章中,并没有提到CallKit。

另请注意,模拟器没有通话 UI(拨号盘和最近通话)