我想知道当收到VoIP推送时,是否允许在下面的方法中报告CXCallUpdate
或CXEndCallAction
。
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
// report new incoming call
}
官方文档只是提到在该块中报告newIncomingCall。HEre 是文档的相关部分。
在链接到 iOS 13 SDK 或更高版本时,您的实现 此方法必须向呼叫工具包报告类型为 voIP 的通知 通过调用框架 reportNewIncomingCall(with:update:completion:( 应用的方法 CXProvider 对象。
提前感谢您的帮助。
如您所知,在iOS 13及更高版本上,当您收到VoIP推送时,您必须向CallKit报告呼叫。但是,一旦您报告了呼叫并且呼叫保持活动状态,您就可以接收任意数量的VoIP推送,并在pushRegistry(:didReceiveIncomingPushWith:type:)
内执行任何您想做的事情。
似乎描述如何处理VoIP推送的相关文档刚刚在Apple官方文档网站上更新。
它说除了传入呼叫之外,不要向应用程序发送任何其他VoIP推送,这意味着一旦收到VoIP推送,我们就无法报告CXCallUpdate或CXEndCallAction。
文档的相关部分可以在下面看到
发送初始推送通知后,请勿发送其他推送通知以取消调用或向应用传达新详细信息。相反,请直接通过您在应用和服务器之间建立的网络连接与应用通信。使用现有网络连接通常比发送推送通知更快,如果网络状况不佳,APNs 可能无法将推送通知传递到设备。
这里也是刚刚更新的官方文档
https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit?language=objc