iphone - recuperar - Insignia de notificaciones push incremento automático
recuperar notificaciones iphone (4)
Enviar +1
para el recuento de distintivos, que incrementará automáticamente el recuento de distintivos en 1.
He estado implementando el servicio push en mi aplicación, y he estado pensando en el distintivo de la aplicación. Mi aplicación es una aplicación de correo (sorta) y deseo notificar al usuario presionando para que se agreguen nuevos mensajes a la bandeja de entrada, quiero que la insignia = número de mensajes nuevos en la bandeja de entrada.
Pensé en hacerlo con el servidor (proveedor) buscando nuevos mensajes y enviando el número como distintivo.
La pregunta es: ¿hay una manera de incrementar automáticamente el distintivo de la aplicación, sin tener que calcular el valor del distintivo del lado del servidor y luego enviarlo como parte de la carga útil de empuje al APSN?
Tal vez haya una forma de enviar en el campo de placa JSON alguna variable como "++" o algo así. ¿Algún truco para eso? ¿O tengo que ir con el sistema de conteo del lado del servidor?
Es algo posible, pero hay una compensación.
Siempre puede enviar el total no leído como un valor JSON adicional como parte de la carga útil de inserción (las claves de inserción no se entienden explícitamente). Una vez que el usuario abra la aplicación, lea el valor y ajuste la credencial mediante programación a través de la propiedad applicationIconBadgeNumber
de UIApplication.
El problema de hacerlo de esa manera es que push ajusta el valor de la credencial incluso si el usuario no abre la aplicación (es decir, cuando recibe el aviso y el usuario pulsa "Cancelar" en lugar de "Ver"). En esos casos, su credencial no cambiará, pero tan pronto como ejecuten la aplicación (si presionan ''Ver''), entonces su aplicación puede configurarla correctamente.
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 ocurre solo si el usuario recibe la notificación y la aplicación no se ejecuta / eligen no lanzarla. Si el usuario inicia la aplicación o ya la tenía ejecutada, puede hacer lo que quiera con respecto al incremento.
ACTUALIZACIÓN Marzo 2014: Ver comentarios para una posible actualización. No he hecho empujes en varios años, así que no he podido verificar esto por mí mismo.
Puede probar los servicios backend de App42 que proporcionan un incremento automático del recuento de distintivos de inserción que se mantiene en el lado del servidor. Para más detalles puedes seguir el enlace del blog . Aquí está el contenido del blog:
Estos son algunos de los casos de uso que se pueden lograr a través del recuento de credenciales incremental automático en la Notificación Push de App42.
Para el incremento automático de la credencial 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: el ejemplo explicado es para Unity / C #, pero el mismo proceso puede aplicarse a otros también.
Si desea estipular cualquier número para la credencial o si desea reducir el conteo de credenciales a cero, puede usar este método para actualizar la cuenta a medida que el usuario haga clic en la notificación. Debe 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 utiliza para actualizar el recuento de distintivos de inserción de un dispositivo en particular registrado por el usuario.
updatePushBadgeforUser
: este método se utiliza para actualizar el recuento de distintivos de inserción de todos los dispositivos que un usuario obtiene. En este caso, asumimos que el usuario tiene varios dispositivos registrados con su nombre.