Incrémenter la notification Push Badge iPhone

Est-il possible d’incrémenter la valeur du badge à la réception de la notification. OU Dois-je envoyer le décompte en tant que charge utile?

Si j’envoie la valeur du badge à “1” à chaque fois, comment pourrais-je incrémenter la valeur du badge dans l’icône de l’application si l’application n’est pas ouverte?

J’ai utilisé ce code mais ne fonctionne pas.

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

Généralement, dans toutes les applications, le nombre de notifications non lues est conservé sur le serveur. Lorsque le serveur envoie une notification push à un jeton de périphérique particulier, il envoie le nombre de badges avec la charge utile. Une fois le périphérique notifié et votre application en arrière-plan (ou supprimée), le système d’exploitation met automatiquement à jour le nombre de badges sur l’icône de votre application. Si vous avez votre application en cours d’exécution, vous serez averti dans le

 application:didReceiveRemoteNotification: 

délégué et vous pouvez ainsi recevoir le nombre de badges du (NSDictionary *) userInfo. Et ainsi vous pouvez mettre à jour le nombre de badges de l’icône de l’application en utilisant la fonction

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

Pensez que cela devrait vous aider.

Si l’application n’est pas ouverte, vous ne pourrez pas augmenter le badge à l’exception de la charge utile.

Lorsqu’une notification Push arrive lorsque votre application est en arrière-plan et que vous souhaitez incrémenter le numéro de badge, vous devez envoyer un badgeCount au serveur afin que le serveur connaisse le nombre actuel.

Si vous gérez le nombre de badges depuis le côté serveur, ce code suffit: –

 - (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]; } } } } 

Urban Airship soutient ceci en utilisant leur fonctionnalité “autobadge”.

Après avoir reçu une notification à distance lorsque vous ouvrez une application,

obtenir le numéro de badge actuel dans la méthode “didBecomeActive” de votre fichier Appdelegate en utilisant le code ci-dessous:

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