在iOS中,可以使用CallKit的reportIncomingCall显示来电ui。
在我的情况下,这在物理设备中起到了预期的作用。我的iPhone收到来电提醒,我可以接受电话,也可以拒绝电话。
然而,它似乎在iOS模拟器中不起作用。更具体地说,reportNewIncomingCall
方法调用本身成功,但随后它立即结束(我甚至看不到任何调用警报(。此外,从CXProviderDelegate调用func provider(_ provider: CXProvider, perform action: CXEndCallAction)
,这意味着调用已经结束。
我在苹果官方文档中找不到是否可以在iOS模拟器中测试CallKit-reportIncomingCall。
奇怪的是,reportOutgoingCall
和CXCallController
的呼出在模拟器中似乎工作得很好,因为当CXStartCallAction
完成时,我可以看到iPhone顶部显示绿色状态栏。
所以,我唯一无法工作的是在iOS模拟器中使用CallKit接听电话。这是预期的行为吗?
CallKit在iOS模拟器上完全不起作用,既不接电话也不打电话。在模拟器上启动任何包含CXStartCallAction
或CXAnswerCallAction
的CXTransaction
将立即失败,NSError.Code
值为CXErrorCodeRequestTransactionErrorUnknown
(零(。您必须使用真实的设备来测试您的CallKit应用程序。
是的,我在任何苹果文档中都找不到提到这一点。在这篇提到模拟器和真实设备之间差异的文章中,没有提到CallKit。
还要注意,模拟器没有呼叫UI(拨号盘和最近的呼叫(