原因:'杀死应用程序,因为它在接收到PushKit VoIP推送回调后从未向系统发布传入呼叫。'

问题描述 投票:0回答:1

我正在寻找解决方案,但还没有发现。我的应用程序仅接收VoIP推送,而在iOS 13之后,当应用程序处于后台模式时,我将无法再接收推送。我看了其他问题,但无法通过提出的解决方案解决问题。有人可以帮助我吗?

在iOS 13.0和更高版本上,必须使用CallKit框架在收到收到的IP语音呼叫时并且在didReceiceIncomingPush()方法执行完之前进行报告,否则系统将终止您的应用程序。

反复无法报告呼叫可能会阻止您的应用接收更多来电通知。

基本上,您不能再将VoIP推送用于非VoIP消息传递,而将需要使用常规的推送通知。

我阅读了此公告,但是在我的应用中,对于特定类型的推送VoIP,我无法使用函数reportNewIncomingCall(),因为它需要以下参数:uuid,handle,hasVideo ecc。这些参数不存在于有效载荷中。

ios swift voip callkit pushkit
1个回答
0
投票

自iOS 13起,您只能使用VoIP推送来报告来电。对于不是来电的推送,您必须使用其他选择(在此处查看此answer)。

反复无法报告呼叫可能会阻止您的应用接收更多来电通知。

根据我的测试,在仅报告两次或3次后,它似乎阻止了所有VoIP推送,并且将在大约24小时内保持阻止状态。

因为它需要以下参数:uuid,handle,hasVideo ecc。并且这些参数不存在于有效载荷中

如果收到新呼叫的VoIP推送,但仍然没有上面列出的必需信息,则可以使用“虚拟”值初始化呼叫,然后更新它们。例如,将remoteHandle设置为CXHandle(type: .generic, value: "Connecting..."),然后使用正确的值对其进行更新:

cxCallUpdate.remoteHandle = CXHandle(type: .emailAddress, value: "[email protected]")
cxProvider.reportCall(with: callUid, updated: cxCallUpdate)
© www.soinside.com 2019 - 2024. All rights reserved.