iOS:通知徽章编号不会重置

时间:2018-09-28 22:12:06

标签: swift apple-push-notifications firebase-cloud-messaging

我想在每次打开应用程序时重置通知徽章编号。可以正常调用

application.applicationIconBadgeNumber = 0
UNUserNotificationCenter.current().removeAllDeliveredNotifications()

但是,当我收到一个或多个新通知时,无论收到多少通知,图标徽章编号都会再次变为42。

有人知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

您可以按照以下任一方法来实现这一目标,

  1. 您可以将收到的通知存储在数据库中,当用户打开应用程序时,您可以获取未读通知的计数并更新计数。
  2. 如果您将目标锁定在单个用户上,则可以使用https://stackoverflow.com/a/50044201/5084797获取推送通知的传递,然后在打开通知时将通知打开事件传递给服务器。因此,下一次服务器发送推送通知时,他们只需检查“交付”和“打开”之间的差异,然后以徽章形式发送该计数。如果用户未打开通知就从通知中心清除了所有通知。在这种情况下,App打开后,您需要在服务器上进行更新,否则您可能会从服务器获取错误的计数。