图标徽章没有递增?

时间:2014-03-28 20:34:07

标签: ios objective-c push-notification badge

由于某些原因,我的应用程序中的徽章编号没有增加

我试过

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

还有:

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

完整代码:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [UIApplication sharedApplication].applicationIconBadgeNumber =
              [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
}

它始终显示1,从我的服务器发送playload badges = 1

2 个答案:

答案 0 :(得分:1)

您应该跟踪服务器上的徽章计数器。

当您的应用变为有效时,请将徽章计数设置为0 [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

并向服务器的自定义API发送请求,告知徽章计数现在为0

答案 1 :(得分:0)

当您的应用未处于活动状态时,问题是didReceiveRemoteNotification无法调用。因此,只有在应用程序变为活动状态时才能增加它。

您需要跟踪数据库中的bagde计数,并将其与推送通知一起发送。

现在,您的应用将负责减少/增加该计数,并最终将该徽章计数字段更新到您的表中,以便在下次推送警报时,您的服务器会知道应用图标应显示的徽章编号。