如何在应用图标上显示通知计数?

6
我想展示推送通知的计数,就像这样,我已经搜索了相关信息,但是没有找到正确的解决方案。 enter image description here

2
请参考以下链接:https://dev59.com/61nUa4cB1Zd3GeqPbIWb。 - Rince Thomas
2
可能是更新iOS应用图标徽章而不使用推送通知的重复问题。 - serhat sezer
4个回答

12

您可以在任何地方进行设置。例如:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

{
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:123]; // this one
} 

Anhtu兄弟,需要帮忙吗? - Kishore Kumar
我喜欢自动更新通知计数,所以我尝试了[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber];但是没有成功。 - Kishore Kumar
我在推送通知接收方法中放置了这行代码。 - Kishore Kumar
你确定它调用了这一行代码吗?而且你还应该在这里加上 +1:[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber+1]; - tuledev
是的,这行代码被调用了,当我点击通知时,它会再次显示1。 - Kishore Kumar

5
当您收到通知时,将调用此方法:
application:didReceiveRemoteNotification:

这将包含一个NSDictionary。
`(NSDictionary *)userInfo`

使用该函数更新应用程序图标徽章计数

[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];

您的有效载荷看起来像这样:

{
"aps" : {
    "alert" : "You got your emails.",
    "badge" : 9
        }
}

隐藏徽章,请使用零(0)。

1

0
在 Swift 4 中,您可以通过添加以下行来设置徽章:
UIApplication.shared.applicationIconBadgeNumber = <Int_count>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接