6

我想让徽章数量在收到推送通知时自动增加,例如:如果我收到两个通知,让数字显示为 2,如果我收到更多,数字会增加。当我打开应用程序时,我想让数字返回零。所以我正在做的是以下内容:应用程序中的代码确实完成了启动

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

否则,接收远程通知中的代码是

application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];

在服务器中,在 php 文件中:

$payload = '{"aps": {"alert":"'.$message.'", "sound":"default","badge":"+1"}}';

但是,不幸的是,数字没有增加,如果上面的代码有误,请纠正我,谢谢。

4

2 回答 2

3

推送通知中没有自动增加徽章编号的选项。您必须通过徽章上显示的号码。

此外,application:didReceiveRemoteNotification:仅当应用程序在前台运行时才会调用。在这里您可以计算新的徽章编号,但如果您的应用程序不在前台,这将无济于事。

您还需要跟踪徽章编号服务器端。

于 2013-08-23T07:52:39.113 回答
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;}
于 2013-08-24T11:00:46.923 回答