Incrementa la insignia de notificación de Push iPhone

¿Es posible incrementar el valor de la insignia al recibir la notificación? O ¿Debería enviar el conteo como carga útil?

Si envío el valor de la insignia como “1” cada vez, ¿cómo puedo incrementar el valor de la insignia en el ícono de la aplicación si la aplicación no está abierta?

He usado este código pero no funciona.

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

Por lo general, en todas las aplicaciones, los recuentos de notificaciones no leídos se mantienen en el servidor. Cuando el servidor envía una notificación de inserción a un token de dispositivo en particular, envía el recuento de la insignia junto con la carga útil. Una vez que se le notifica al dispositivo y su aplicación está en segundo plano (o muerta), el sistema operativo actualiza automáticamente el recuento de distintivos al icono de su aplicación. En caso de que tenga su aplicación en ejecución, recibirá una notificación en el

 application:didReceiveRemoteNotification: 

delegar y, por lo tanto, puede recibir el recuento de distintivos del (NSDictionary *) userInfo. Y así usted puede actualizar el conteo de la insignia del icono de la aplicación usando la función

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

Piensa que esto debería ayudarte.

Si la aplicación no está abierta, no podrá boost la insignia, excepto desde la carga útil.

Cuando aparece una notificación de inserción mientras su aplicación está en modo de fondo y desea incrementar el número de insignia, debe enviar un badgeCount al servidor para que el servidor conozca el recuento actual.

Si administra el recuento de distintivos desde el lado del servidor, este código es suficiente:

 - (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 lo admite utilizando su función de “autobadge”.

Después de recibir la notificación remota cuando abre la aplicación,

obtenga el número de placa actual en el método “didBecomeActive” de su archivo Appdelegate usando el siguiente código:

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