在 iPhone 中获取推送通知时徽章图标不会增加?

Posted

技术标签:

【中文标题】在 iPhone 中获取推送通知时徽章图标不会增加?【英文标题】:Badge Icon doesn't increase when getting PushNotification in iPhone? 【发布时间】:2014-04-21 10:09:50 【问题描述】:

我有一个带有 Apple 推送通知的应用程序,但问题是当推送到达时,徽章应用程序图标不会增加。

谁能告诉我如何增加应用程序的徽章?

我正在使用以下代码:

-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 
    NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"badge"];
    NSLog(@"my message-- %@",alertValue);
    int badgeValue= [alertValue intValue];

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:[[UIApplication sharedApplication] applicationIconBadgeNumber]+ badgeValue];

谢谢

【问题讨论】:

【参考方案1】:

您不能在推送通知中发送++。您需要在推送通知负载中提供准确的徽章计数,并在服务器端管理徽章计数。

【讨论】:

你需要有一个每个用户的数据库,并记住计数。我不知道您的应用程序具体做什么,但您需要考虑如何实现。例如,消息应用程序会随着每条新消息增加服务器上的徽章计数,并在用户打开应用程序时将其设置为 0。 我们在 php 代码中设置了以下代码。 "aps" : "alert" : "这是警报文本", "badge" : 1, "sound" : "default" 我也尝试使用 +1,但没有任何反应?我怎样才能增加它? 你需要有一个数据库,增加数据库,当你构建payload时,你需要设置正确的数字(1 or 2 or 3 or 4 or 5 or ...)。跨度> 【参考方案2】:

试试这个代码:

NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
numberOfBadges +=1;

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];

【讨论】:

【参考方案3】:

关于如何做你想做的事,Leo 是对的。

要知道的是,您拥有的任何代码都无关紧要。只有在收到推送通知时应用程序处于打开状态时,该代码才会被激活。如果应用未打开,则不会运行任何代码。

您可能想要研究的另一种可能性是仅数据推送,其中包含您想要的非 APS 元数据块中的徽章增量。然后您可以在数据推送中任意指定增量,并激活代码来处理内容。但很有可能你真的需要按照 Leo 的建议去做,否则你怎么知道增加徽章的正确数量?

【讨论】:

以上是关于在 iPhone 中获取推送通知时徽章图标不会增加?的主要内容,如果未能解决你的问题,请参考以下文章

推送通知徽章

Firebase 推送通知徽章计数是不是在 iOS 中自动增加?

获取 OneSignal 通知计数

iPhone:自动增加徽章计数器[重复]

推送通知问题

在 Swift 中收到推送时添加徽章