在我的数据库中,我将传递的邮件计数存储在表字段中。对于发送到特定设备的每条消息,我将增加该值。
当设备收到带有徽章设置的payloa时,它会在应用程序图标上显示红色圆圈。
这一切都还可以,但是,当我启动应用程序时(从推送或直接从图标),我如何通知已重置计数器的服务器?
并且,如果应用程序处于活动状态,我也必须通知服务器不要增加徽章(因为用户正在实时阅读)。
为了解决这个问题,我必须在收到的每次推送时回叫服务器吗?
答案 0 :(得分:1)
如果您希望服务器知道用户何时查看了新数据(通过启动应用程序,或者已经将应用程序放在前台),那么正如您已经想到的那样,唯一的方法是回拨您的服务器每次启动时(来自通知或图标)或在活动时收到推送通知。
如果应用处于活动状态,您可以在处理推送通知时立即删除徽章(因此用户永远不会看到它)。您可以通过调用application:didReceiveRemoteNotification:
在app.applicationIconBadgeNumber = 0
中执行此操作。