如何确保iOS应用程序收到服务器发送的每个推送通知?

众所周知:

> app如果处于后台或离线模式,则不会收到推送通知(应用在用户操作后获取一次:点按通知或应用图标).
> Apple推送通知服务在设备离线时仅保留一个最后通知.设备连接到Internet后,APN会发送最后一个通知.

怎么解决这个?

>刚刚到达应用程序(非设备)的最新通知必须反映应用程序中尚未实现的实际通知数量.那么,我可以从服务器上下载最后n个通知,并随时在应用程序中实现它们.

问题是:

How the server knows what notifications were implemented in the app, and which one not?

通知必须是每台设备.为什么?例如,必须在每个设备中实现通知“从Core Data中删除对象”.因为只有一个用户可以在多个设备上登录.

最佳答案 您应该在服务器上跟踪任务的状态(删除记录或应用程序需要执行的任何操作),并在任务完成时让客户端报告.然后将任务标记为已完成.

不要将推送通知用作任务的可靠交付方法,否则您将失败.将通知用作设置的补充部分.

因此,例如,当您的应用收到通知时,它可以与后端同步,检索标记为未完成的任务,执行它们,然后让后端知道它已完成.

点赞