在 iOS 中从设备卸载应用程序或与网络断开连接后,VOIP 令牌不会失效

VOIP token won't get invalid after uninstalling an app from a device or disconnected from the network in iOS

我正在开发一个基于 VOIP 的应用程序,其中一个用户呼叫另一个用户,一切正常,就像打电话一样。

但是,每当我当时没有退出应用程序并直接卸载应用程序时,任何其他用户都会尝试调用已卸载该应用程序的用户。那时后端从苹果获得成功响应(即 200 成功)。如果未安装该应用程序,为什么不会报错

实际上,我们需要向呼叫已经卸载应用程序的人的用户发出一些特定的警报,但我们也无法从后端发现 voip 推送失败。

还有一件事只是为了测试:我们也尝试发送 FCM 静默通知,它与 VOIP 通知同步工作,但 FCM 也在后端成功,而应用程序已经从设备上卸载了。

如果有人遇到同样的问题并有解决方案,请告诉我。

短期内,Apple并不知道用户已经卸载了app,所以接受推送。

推送是异步传递的(因为发送推送时设备可能处于离线状态;它将排队等候稍后传递)。

A​​PNs 无法提供有关您的推送传送的即时反馈。 200 状态仅表示推送已成功接受交付。

最终 Apple 将确定推送令牌无效并 return 一个 410 响应。届时您可以从数据库中删除推送令牌。

在短期内,您可以检测设备是否在合理的时间范围内未响应 VoIP 推送,并且 return 对呼叫者的“呼叫失败”或“收件人不可用”响应。