当应用处于非活动终止状态时,带有 CallKit 的 VOIP 通知不会调用 reportIncomingCall

VOIP notification with CallKit is not invoking reportIncomingCall when app is inactive killed state

这是一款视频通话应用。我已经实现了 VoIP 通知以接收视频通话。收到 VoIP 通知后,我正在使用 CallKit 呼叫 reportNewIncomingCall()

当我最小化应用程序时,我收到来电并且流程正常。 但是当我终止应用程序时,我没有接到来电。知道为什么吗? 我还注意到,当我下次点击并打开应用程序时,它会崩溃:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push callback.'

这表示我没有发帖 reportNewIncomingCall。但我已经在做,当应用程序最小化时接到电话。

func pushRegistry(_ registry: PKPushRegistry,
                  didReceiveIncomingPushWith payload: PKPushPayload,
                  for type: PKPushType,
                  completion: @escaping () -> Void) {

    provider.reportNewIncomingCall(with: uuid, update: update) { error in
     
    }
    completion()
}

只有被杀死的状态,我没有接到电话。 killed状态下接电话还需要做什么?请帮忙。

您是否尝试在 reportNewIncomingCall 完成处理程序中调用 pushRegistry 完成处理程序?

func pushRegistry(_ registry: PKPushRegistry,
                  didReceiveIncomingPushWith payload: PKPushPayload,
                  for type: PKPushType,
                  completion: @escaping () -> Void) {

    provider.reportNewIncomingCall(with: uuid, update: update) { error in
        completion() // <----
    }
}

即使文档中没有明确说明,我认为这是处理新来电的正确方法。