Incrément automatique de Badge de notification Push

J'ai implémenté le service push dans mon application, et j'ai pensé au badge de l'application. Mon application est une application de messagerie (sorta) et je veux informer l'utilisateur via push pour les nouveaux messages ajoutés à la boîte de réception, je veux le badge = nombre de nouveaux messages dans la boîte de réception.

J'ai pensé à le faire face au serveur (fournisseur) en vérifiant les nouveaux messages et en envoyant le numéro comme badge.

La question Est: Existe-t-il un moyen d'incrémenter automatiquement le badge de l'application, sans avoir à calculer la valeur du badge côté serveur et ensuite l'envoyer comme une partie de la charge utile push à L'APSN?

Peut-être qu'il y a un moyen d'envoyer dans le champ de badge JSON une variable comme "++" ou quelque chose comme ça. Tout hack pour qui? Ou dois-je aller avec le système de comptage côté serveur??

23
demandé sur Jim Puls 2009-12-22 00:00:53

4 réponses

Non, vous devrez suivre cela du côté serveur. Si vous n'incluez aucune valeur pour le badge, il sera complètement supprimé.

Bien sûr, ce n'est que si l'utilisateur reçoit la notification et que l'application ne fonctionne pas/ils choisissent de ne pas la lancer. Si l'utilisateur lance l'application ou elle était déjà en marche, vous pouvez faire ce que vous voulez en ce qui concerne l'incrémentation.

Mise à jour Mars 2014: Voir les commentaires pour une mise à jour possible. Je n'ai pas fait de pushes depuis plusieurs années donc n'ai pas pu le vérifier moi-même.

28
répondu bpapa 2015-10-08 14:28:12

C'est un peu possible mais il y a un compromis.

Vous pouvez toujours envoyer le total non lu en tant que valeur JSON add-on dans le cadre de la charge utile push (push ignore les clés qu'il ne comprend pas explicitement). Une fois que l'utilisateur ouvre l'application, lisez la valeur et ajustez vous-même le badge par programme via la propriété applicationIconBadgeNumber de UIApplication.

Le problème avec le faire de cette façon est que push ajuste la valeur du badge même si l'utilisateur n'ouvre pas l'application (c'est-à-dire quand ils reçoivent l'avis et le l'utilisateur clique sur "Annuler" au lieu de "voir"). Dans ces cas, votre badge ne changera pas, mais dès qu'ils exécutent l'application (s'ils cliquent sur 'View'), votre application peut la régler correctement.

1
répondu Ramin 2009-12-21 21:22:25

Vous pouvez essayer les services backend App42 qui fournissent un incrément automatique du nombre de badges push qui est maintenu côté serveur. Pour plus de détails, vous pouvez suivre le lien de blog. Voici le blogpost conent:

Voici les quelques cas d'utilisation qui peuvent être atteints grâce au nombre incrémental automatique de badges dans la Notification push App42.

Pour auto incrément de push badge par 1, vous devez envoyer push message comme indiqué ci-dessous.

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

N. B: l'échantillon expliqué est pour Unity / C# mais le même processus peut être appliqué sur d'autres aussi.

Si vous voulez prévoir un nombre quelconque par badge ou souhaitez réduire le compteur à zéro, vous pouvez utiliser cette méthode pour mettre à jour le comte de la notification obtient cliqué par l'utilisateur. Vous devez appeler updatePushBadgeforDevice ou updatePushBadgeforUser dans ce cas.

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 – Cette méthode est utilisée pour mettre à jour le nombre de badges push d'un périphérique particulier enregistré par l'utilisateur .

updatePushBadgeforUser – Cette méthode est utilisée pour mettre à jour le nombre de badges push de tous les périphériques qu'un utilisateur achète. Dans ce cas, nous supposons que l'utilisateur a plusieurs appareils enregistrés sous son nom.

1
répondu user3663334 2015-09-03 21:31:35

Envoie +1 pour le nombre de badges, qui incrémentera automatiquement le nombre de badges de 1.

-10
répondu user3749812 2015-07-08 20:09:47