我目前正在从有效载荷获取徽章。但我如何更新该值。
{"aps":
{"alert":"Notification Hub test notification2",
"badge":1,
"sound":"Default"}
}
当我发送此消息时,徽章编号始终显示为1,但当我进入应用程序并退出时,徽章编号会得到更新。正因为如此,
func applicationDidBecomeActive(application: UIApplication) {
UIApplication.sharedApplication().applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1
}
但当我发送一个新的推送通知,它再次显示1作为徽章号码的图标。我应该怎么做,我的理解,我应该发送更新徽章时,我发送的有效载荷。为此,我必须处理后端。
除此之外,是否还有其他建议来处理内部应用程序?
9条答案
按热度按时间7xllpg7q1#
如果您的项目具有通知扩展,则可以在其中进行标记设置。
首先,启用应用程序组并将应用程序通知服务扩展中的徽章计数保存在
UserDefaults
中。我们使用应用程序组是因为在打开应用程序时,我们需要从AppDelegate
中清除徽章计数。此外,您还可以通过通知服务扩展将徽章值设置为bestAttemptContent.badge
在通知服务扩展中:
在AppDelegate中,您可以清除标记...并将标记的值设置为用户默认值的零
1cosmwyk2#
我将给予你我的方式:
我的计划是使用KVO来收听
[UIApplication sharedApplication].applicationIconBadgeNumber
一旦值更改,我使用
[[NSNotificationCenter defaultCenter] postNotificationName:STATUS_BADGENUMBER_CHANGED object:nil]
通知UI需要修改的地方的徽章的变化。有三种接收远程通知以改变
[UIApplication sharedApplication].applicationIconBadgeNumber
的情况。a.应用程序是前台
B.应用程序在后台
c.应用程序未启动
在a和B情况下,将调用该方法:
在c的情况下,没有办法得到回调,所以我将手动完成。
就这样,对我来说很好。
8wtpewkr3#
这里我的方式斯威夫特:
1)启动应用程序后,您需要在Firebase Realtime数据库中将badge(一个您可以随意调用的变量)设置为零。另外,还要设置application.applicationIconBadgeNumber = 0。以下是我在AppDelegate中的操作:
2)转到触发函数的index.js。
htzpubme4#
首先,让你的服务器人员给你发送更新的徽章计数器。你的工作只是展示它,而不是在你的一端维护它。
您需要在
applicationDidReceiveRemoteNotifications
Delegate方法中执行如下更新操作:在您的
DidBecomeActive
方法中:这是假设你的服务器向你发送更新的push badge计数器。在parse.com中,我会做类似这样的事情来向服务器传达push计数器现在必须设置为零:
如果我不这样做,服务器将假定Push从未被读取过,并将在下一次Push时增加其端的徽章计数器,依此类推。
vd2z7a6w5#
在NSUserDefault中保留标记计数以获得最大可用性。即使重新启动设备,也可以从NSUserDefault获取标记计数。
当您获得另一个有效负载时,您可以继续增加NSUserDefault中的徽章计数。
zlhcx6iw6#
服务器必须在
@"badge"
密钥中增加许多计数。当您打开应用程序时,您需要向服务器发送请求-重置推送计数器(徽章)。在applicationDidBecomeActive
方法中。6ovsh4lw7#
每当我们使用推送通知时,我们必须更新其徽章计数。否则,每次徽章都将相同。例如,如果您收到一个通知,其计数为1,而您阅读它时,它仍将显示徽章1。因此,您必须清除徽章。通过使用类似于以下代码,
lymnna718#
对于处理徽章最好的解决方案是使用通知扩展名,您可以创建一个. notification扩展名,也可以使用KVO来更新应用程序中的徽章。和应用程序组保存徽章的数量,并在应用程序中进行管理。当您收到通知时,您可以读取您有多少通知,并将通知的徽章添加到其中,并更新您的通知,它
m1m5dgzv9#
你的方向是正确的。你必须从你的有效载荷中更新徽章号码,这是推送通知的标准方式。