我希望在接收推送通知时让徽章编号自动增加,例如:如果我收到两个通知,则数字显示为2,如果我收到更多,则数字会增加。我想在打开应用程序时让数字返回零。所以我正在做的是以下内容: 应用程序中的代码确实完成了启动
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
否则,接收远程通知中的代码是
application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];
在服务器中,在php文件中:
$payload = '{"aps": {"alert":"'.$message.'", "sound":"default","badge":"+1"}}';
但是,不幸的是,这个数字没有增加,如果上面的代码错了,请纠正我,谢谢你的提前。
答案 0 :(得分:3)
推送通知中没有选项可以自动递增徽章编号。您必须传递徽章上显示的号码。
如果应用程序正在运行前台,则只会调用application:didReceiveRemoteNotification:
。在这里,您可以计算新的徽章编号,但如果您的应用不在前台,这将无法帮助您。
您还需要跟踪徽章编号服务器端。
答案 1 :(得分:1)
您可以执行以下操作
- (void)application:(UIApplication *)application didReceiveRemoteNotification: (NSDictionary *)userInfo {
NSLog(@"userInfo:%@",userInfo);
badge_value+=[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"]intValue];<br>
NSLog(@"Totoal badge Value:%d",badge_value);<br>
for (id key in userInfo) {
NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
}
[UIApplication sharedApplication].applicationIconBadgeNumber = badge_value;}