ios - 推送通知更改 AppIcon 的角标(Badge)

标签 ios objective-c push-notification uiapplication

我正在开发一个可以接收Push-Notifications 的应用程序。 收到通知后,我需要更改图标角标(Badge)的数量并增加它。 这些通知存储在我的应用程序的 UITableView 中。 当按下一行时,这意味着通知已被读取,所以我想减少角标(Badge)。 我是推送通知和角标(Badge)的新手,我真的找不到任何有效的方法来做到这一点

有什么解决办法吗?

谢谢。

最佳答案

您不能自动增加通知中的角标(Badge)。您的通知负载必须包含 badge 属性,该属性将被设置为您想要的角标(Badge)的确切值
要在您的应用中设置角标(Badge)值,您可以使用:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:someInteger];

如果您想在每次收到通知时将角标(Badge)递增 1,则需要在服务器端跟踪用户的角标(Badge)。
例如,如果您向用户发送 3 条通知,您的数据库中将有一个 badge 列用于此用户,其值为 3。如果用户打开他的应用程序并点击其中一个通知,您的应用程序必须将角标(Badge)图标设置为 2 并向您的服务器发送请求以将数据库值减少到 2。

TL;DR:通知的负载中没有 badge:+1badge:autoincrement 这样的东西。您必须在服务器端跟踪角标(Badge)的值(value)。

关于ios - 推送通知更改 AppIcon 的角标(Badge),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31695032/

相关文章:

javascript - 如何允许用户在阻止后启用推送通知?

android - OneSignal-Pushnotification 小图标在 Android 上不显示

ios - 稍后在导航 Controller 的层次结构中抓取 View

ios - NSFetchRequest/NSFetchedResultsController 返回不同的单个属性,但使用实体的另一个属性进行排序

objective-c - 文本字段日期选择器计算

ios - 更改 iOS App 中 UIRefreshControl 指示器的初始位置

ios - 具有变量值的格式化 NSLocalizedString

firebase - FCM : Cannot click notification

iphone - 在保留、分配和自动释放后,在 dealloc 中释放 UILabel 会使应用程序崩溃

objective-c - 如何避免图像重定位使用带有 HTML 内容的 NSSharingService 发送电子邮件