didReceiveRemoteNotification和徽章编号

时间:2011-01-20 11:45:03

标签: 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.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];
}

抱歉有很多混乱,代码按钮无效。

现在我的推送网关每次都会为发送的警报数量等提供一个数字,但是如果有先前的警报,我将如何将此代码添加到列表中而不是仅仅设置新的数字

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

APNS不支持徽章的增量操作;生成的每个推送通知应该设置当前值应该是什么。 (主要是由于设备无法保证推送通知这一事实)

因此,不幸的是,您需要在某个地方安装服务/服务器,以便跟踪每个用户的徽章。

相关问题