Objective c DidReceivereMotentification和徽章编号

Objective c DidReceivereMotentification和徽章编号,objective-c,ios,push-notification,apple-push-notifications,Objective C,Ios,Push Notification,Apple Push Notifications,好吧,我有点困在如何处理这个问题上了 首先我给你看代码 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSString *badge = [apsInfo objectForKey:@"badge"]; NSLog(@"Received Push Badge: %@", badge); application.

好吧,我有点困在如何处理这个问题上了

首先我给你看代码

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    NSString *badge = [apsInfo objectForKey:@"badge"];
    NSLog(@"Received Push Badge: %@", badge);
    application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];
}
对不起,这里太乱了,代码按钮不起作用

现在,我的推送网关为每次发送的警报数量等提供了一个数字,但如果以前有警报,我如何让此代码只向列表中添加+1,而不只是设置新的数字?您应该尝试以下操作:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    NSString *badge = [apsInfo objectForKey:@"badge"];
    NSLog(@"Received Push Badge: %@", badge);
    int currentBadgeNumber = application.applicationIconBadgeNumber;
    currentBadgeNumber += [[apsInfo objectForKey:@"badge"] integerValue];
    application.applicationIconBadgeNumber = currentBadgeNumber;
}

APNS不支持徽章的增量操作;生成的每个推送通知都应设置当前值。(主要原因是推送通知不保证由设备接收)

因此,不幸的是,您需要在某个地方有一个服务/服务器来跟踪每个用户的徽章