Dan*_*ari 5 voip ios swift pushkit callkit
我正在寻找解决方案,但尚未找到任何解决方案。我的应用程序仅接收 VoIP 推送,在 iOS 13 之后,当应用程序处于后台模式时,我无法再接收推送。我查看了其他问题,但无法通过提出的解决方案解决我的问题。有人可以帮助我吗?
在 iOS 13.0 及更高版本上,必须在收到传入 IP 语音呼叫时以及在 didReceiceIncomingPush() 方法完成执行之前使用 CallKit 框架进行报告,否则系统将终止您的应用程序。
多次未能报告来电可能会导致您的应用无法接收更多来电通知。
基本上,您不能再使用 VoIP 推送来发送非 VoIP 消息,并且需要对这些消息使用常规推送通知。
我读了这个公告,但在我的应用程序中,对于特定类型的推送 VoIP,我无法使用函数reportNewIncomingCall(),因为它需要如下参数:uuid、handle、hasVideo ecc。并且这些参数不存在于有效负载中。
自 iOS 13 起,您只能使用 VoIP 推送来报告来电。对于不是来电的推送,您必须使用其他替代方案(请在此处查看此答案)。
多次未能报告来电可能会导致您的应用无法接收更多来电通知。
从我的测试来看,它似乎在报告失败 2 或 3 次后就阻止了所有 VoIP 推送,并且它会保持阻止状态大约 24 小时。
因为它需要如下参数:uuid、handle、hasVideo ecc。并且这些参数不存在于有效负载中
如果您收到新来电的 VoIP 推送,但仍然没有上面列出的所需信息,您可以使用“虚拟”值初始化呼叫,然后更新它们。例如,将 RemoteHandle 设置为CXHandle(type: .generic, value: "Connecting..."),然后使用正确的值更新它:
cxCallUpdate.remoteHandle = CXHandle(type: .emailAddress, value: "email@mail.com")
cxProvider.reportCall(with: callUid, updated: cxCallUpdate)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6468 次 |
| 最近记录: |