Swift 使用iOS13,当接收到VoIP推送时,是否允许报告CXCallUpdate或CXEndCallAction?

Swift 使用iOS13,当接收到VoIP推送时,是否允许报告CXCallUpdate或CXEndCallAction?,swift,push,voip,ios13,callkit,Swift,Push,Voip,Ios13,Callkit,我想知道当接收到VoIP推送时,是否允许在下面的方法中报告CXCallUpdate或CXEndCallAction func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) { // report new incoming call } 官方文件只提到了在那个街区报道新收入。以下是文档的相关部分 在针对i

我想知道当接收到VoIP推送时,是否允许在下面的方法中报告
CXCallUpdate
CXEndCallAction

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
  // report new incoming call
}
官方文件只提到了在那个街区报道新收入。以下是文档的相关部分

在针对iOS 13 SDK或更高版本进行链接时 此方法必须向CallKit报告voIP类型的通知 通过调用 应用程序的reportNewIncomingCall(使用:更新:完成:)方法 CXProvider对象


提前感谢您的帮助。

您可能知道,在iOS 13及更高版本上,当您收到VoIP推送时,必须向CallKit报告呼叫。但是,只要您报告了呼叫并且呼叫保持活动状态,您就可以接收任意数量的VoIP推送,并在
pushRegistry(:didReceiveIncomingPushWith:type:)中执行任何您想要的操作

苹果官方文档网站上似乎刚刚更新了描述如何处理VoIP推送的相关文档

它说,除了传入呼叫之外,不要向应用程序发送任何其他VoIP推送,这意味着一旦收到VoIP推送,我们就不能报告CXCallUpdate或CXEndCallAction

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
  // report new incoming call
}
文件的相关部分见下文

发送初始推送通知后,不要发送其他推送通知以取消呼叫或向应用程序传达新的详细信息。相反,可以通过在应用程序和服务器之间建立的网络连接直接与应用程序通信。使用现有网络连接通常比发送推送通知快,如果网络状况不佳,APN可能无法向设备发送推送通知

这里还有刚刚更新的官方文件


如果我错了,请纠正我,你的意思是如果我已经向CallKit报告传入呼叫(通过VoIP推送),并且如果它保持活动状态,我仍然可以接收与该呼叫相关的其他VoIP推送(例如callUpdate、callEnd),我不必向CallKit报告该通知,对吗@Marco?准确地说。如果您已经有一个活动调用,则不必调用
reportNewIncomingCall(with:update:completion:)
方法。我不是说重新报告incomingCall,我是说例如报告CXCallEndAction。我的意思是:当您没有活动调用时,您必须调用
reportNewIncomingCall(with:update:completion:)
,但是,当您有一个活动呼叫时,您可以在收到推送时做任何您想做的事情。但是,当我们在报告incomingCall后没有向CallKit报告其他VoIP推送时,我们遇到了iOS阻止我们的应用程序接收VoIP推送,但我不确定这是否是官方行为。