如何检测用户何时清除您应用的通知

How to detect when user clears your app's notification

我的应用有通知功能。当我收到通知时,我会在我的应用程序图标中显示一个徽章。

据我所知,当我的应用程序在后台时,由于用户没有点击通知中心的通知,我的应用程序不知道它有通知。所以它不能改变徽章号码。

同样来自这个主题: Detect when a user clears notification from the notification center

如果用户清除应用的通知,应用将无法检测到。

那么问题来了:
- 我的应用程序在后台运行
- 用户收到与应用相关的通知
- 应用程序在应用程序的图标上添加了一个带有数字 1 的徽章
- 用户从通知中心删除通知
- 应用程序永远不会理解通知已被删除,以便它可以删除徽章!!!

那么其他应用是如何解决这个问题的呢?有解决办法吗?

无法检查用户何时为您的应用清除通知。

清除应用徽章的通常做法是当用户查看了您应用中的适用内容(例如消息应用中的消息),或者在用户下次打开您的应用时清除徽章,如果这不适用,或者您无法轻松地将通知分段并将它们连接到您应用中的可视内容。

注意:你应该而不是依赖用户点击你的通知来获取他们的内容 。如果您的用户没有点击您的通知,您的应用将永远无法找到其内容,或者它曾经存在过。

相反,当您的应用程序打开时,它应该连接到您的服务器以下载更新的内容,然后您可以使用此完整、准确的信息根据需要更新您的应用程序徽章。不要尝试从您的通知中获取内容。

您可以在通知中添加自定义操作:"Mark as read" 或 "Delete"。在 -application:handleActionWithIdentifier:... 方法中删除徽章。

是的,它不允许您检测用户清除通知。但是没有任何办法。所以我建议一个解决方法来解决这个问题。