由于某些原因,我的应用程序中的徽章编号没有增加
我试过
[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
答案 0 :(得分:1)
您应该跟踪服务器上的徽章计数器。
当您的应用变为有效时,请将徽章计数设置为0 [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
并向服务器的自定义API发送请求,告知徽章计数现在为0
答案 1 :(得分:0)
当您的应用未处于活动状态时,问题是didReceiveRemoteNotification
无法调用。因此,只有在应用程序变为活动状态时才能增加它。
您需要跟踪数据库中的bagde计数,并将其与推送通知一起发送。
现在,您的应用将负责减少/增加该计数,并最终将该徽章计数字段更新到您的表中,以便在下次推送警报时,您的服务器会知道应用图标应显示的徽章编号。