Incremento automático de la credencial de notificación push

He estado implementando el servicio push para mi aplicación, y he estado pensando en la insignia de la aplicación. Mi aplicación es una aplicación de correo (sorta) y quiero notificar al usuario a través de la inserción de nuevos mensajes agregados a la bandeja de entrada, quiero que la insignia = número de mensajes nuevos en la bandeja de entrada.

Pensé en hacerlo en el lado del servidor (proveedor) buscando nuevos mensajes y enviando el número como insignia.

La pregunta es: ¿hay alguna forma de incrementar automáticamente la insignia de la aplicación, sin tener que calcular el valor del servidor de la insignia y luego enviarlo como parte de la carga de inserción al APSN?

Tal vez haya una forma de enviar en el campo de la insignia JSON una variable como “++” o algo así. ¿Algún truco para eso? ¿O necesito ir con el sistema de conteo del lado del servidor?

No, tendrás que rastrear esto en el lado del servidor. Si no incluye ningún valor para la insignia, se eliminará por completo.

Por supuesto, esto es solo si el usuario recibe la notificación y la aplicación no se está ejecutando / eligen no iniciarla. Si el usuario inicia la aplicación o ya la tuvo en ejecución, puede hacer lo que quiera con respecto al incremento.

ACTUALIZACIÓN de marzo de 2014: ver comentarios para una posible actualización. No he hecho empujones en varios años, así que no he podido verificarlo yo mismo.

Es posible, pero hay una compensación.

Siempre puede enviar el total no leído como un valor JSON complementario como parte de la carga útil de inserción (push ignora las claves que no comprende explícitamente). Una vez que el usuario abre la aplicación, lea el valor y ajuste la insignia programáticamente usted mismo a través de la propiedad applicationIconBadgeNumber de UIApplication.

El problema al hacerlo de esa manera es que push ajusta el valor de la insignia incluso si el usuario no abre la aplicación (es decir, cuando reciben el aviso y el usuario pulsa ‘Cancelar’ en lugar de ‘Ver’). En esos casos, su insignia no cambiará, pero tan pronto como ejecuten la aplicación (si presionan ‘Ver’), entonces su aplicación puede configurarla correctamente.

Puede probar los servicios back-end de App42 que proporcionan un incremento automático de la cuenta de insignia de inserción que se mantiene en el servidor. Para más detalles, puede seguir el enlace del blog . Aquí está el contenido del blog:

Aquí están los pocos casos de uso que se pueden lograr a través del recuento automático de credenciales incrementales en App42 Push Notification.

Para incrementar automáticamente la insignia de inserción en 1, debe enviar un mensaje de inserción como se muestra a continuación.

 PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service. string userName = "UserName"; string message= "{'badge':'increment'}"; pushNotificationService.SendPushMessageToUser(userName,message, new UnityCallBack()) 

NB: La muestra explicada es para Unity / C #, pero el mismo proceso también puede aplicarse a otros.

Si desea estipular un número para la insignia o si desea reducir el recuento de la insignia a cero, puede usar este método para actualizar el recuento a medida que el usuario hace clic en la notificación. Tienes que llamar a updatePushBadgeforDevice o updatePushBadgeforUser en este caso.

 PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service. string userName = "UserName"; string deviceToken = "DeviceToken"; int badges = 10; // For clear count make it 0 pushNotificationService.UpdatePushBadgeforDevice(userName, deviceToken, badges, new UnityCallBack()); PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service. string userName = "UserName"; int badges = 10; // For clear count make it 0 pushNotificationService.UpdatePushBadgeforUser(userName, badges, new UnityCallBack()); 

updatePushBadgeforDevice : este método se usa para actualizar el conteo de la insignia de inserción de un dispositivo en particular registrado por el usuario.

updatePushBadgeforUser : este método se usa para actualizar el recuento de credenciales de inserción de todos los dispositivos que el usuario obtiene. En este caso, asumimos que el usuario tiene múltiples dispositivos registrados bajo su nombre.

Envíe +1 para el recuento de distintivos, que boostá automáticamente el recuento de distintivos en 1.