增量推送通知徽章iPhone增量推送通知徽章iPhone(Increment the Push no

2019-06-02 17:57发布

是否有可能增加在收到通知的徽章值。 或者我应该送算作有效载荷?

如果我发送的徽章值为“1”每一次,我怎么能增加在应用程序的图标徽章值,如果应用没有开启。

我已经使用这个代码,但不起作用。

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1; 
}

Answer 1:

通常在所有的应用程序的未读的通知数保持在服务器上。 当服务器发送一个推送通知到特定设备令牌它们发送的徽章计数与有效载荷一起。 一旦设备被通知,并且您的应用程序在后台(或杀死)操作系统自动更新的徽章数到您的应用程序图标。 如果您是否有您的应用程序运行时,你会得到的通知

application:didReceiveRemoteNotification:

代表,因此你可以从(NSDictionary的*)用户信息接收徽章计数。 这样的话你都能够更新使用功能的应用程序图标徽章计数

[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];

认为这应该帮助你。



Answer 2:

如果应用程序没有打开,你将无法增加徽章,除了从有效载荷。



Answer 3:

当一个推送通知来当你的应用程序在后台模式和要递增证件号码,你应该送badgeCount到服务器,让服务器知道当前计数。

如果你从服务器端管理徽章计数那么这段代码就足够了: -

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo  {
    NSLog(@"remote notification: %@",[userInfo description]);

    if (userInfo) {
        NSLog(@"%@",userInfo);

        if ([userInfo objectForKey:@"aps"]) { 
            if([[userInfo objectForKey:@"aps"] objectForKey:@"badgecount"]) {
                [UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
            }
        }
    }
}


Answer 4:

城市飞艇支持这种使用他们的“autobadge”功能。



Answer 5:

接收当您打开应用程序的远程通知后,

获得使用下面的代码AppDelegate中的文件“didBecomeActive”方法目前证件号码:

int badgeCount = [UIApplication sharedApplication].applicationIconBadgeNumber;
    badgeCount = badgeCount + 1;


文章来源: Increment the Push notification Badge iPhone