>我有一个与远程服务器通信的应用程序。服务器应使用远程通知以静默方式将数据推送到其中,我需要获取这些数据并将其存储到 CoreData 数据库中。用户不会知道整个过程。
当应用程序收到远程通知时,我可以成功收到通知,同时它处于前台或后台模式。但是,我也需要在应用程序终止时获取数据。
我寻找可能的解决方案。例如,如果我不倾向于使用无声通知,这个 SO 问题很好。我也看到了PushKit功能,但我不确定Apple评论的结果。
- 可能的解决方案是什么?
- 如果我想使用 VoIP 和 PushKit 在应用程序终止时收到通知,Apple 会拒绝我的申请吗?
如果您不是在创建VoIP应用程序,并且希望您的应用程序位于App Store中,那么正确答案是:这是不可能的。唯一能做的就是以某种方式调整您的要求。
例如,您可以发送一些在通知中心对用户可见的通知,并等待用户点击通知或以通常的方式启动应用程序。然后,该应用程序将能够执行您需要的所有操作。
不保证推送通知的传递,因此不应依赖它们来同步数据。
例如,如果在设备脱机时发送多个推送通知,则在设备重新联机时仅传递最后一个通知;较早的通知将丢失。
当您的应用程序启动时,它应该做的第一件事就是检查您的服务器是否有新数据。