当应用处于非活动终止状态时,带有 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() // <----
}
}
即使文档中没有明确说明,我认为这是处理新来电的正确方法。
这是一款视频通话应用。我已经实现了 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() // <----
}
}
即使文档中没有明确说明,我认为这是处理新来电的正确方法。