Avec le code suivant, j'obtiens (2) dans l'icône de badge immédiatement après la compilation de l'application:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = 2
installation.saveInBackground()
}
J'ai essayé la variante suivante: Initialisé un nouveau var badgeCount = 0
et ensuite:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
badgeCount++
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = badgeCount
installation.saveInBackground()
}
Mais lorsque je reçois de nouvelles notifications, il ne se met pas à jour à +1. Quelqu'un sait-il comment y remédier?
Il ne mettra pas à jour le numéro de badge avec cette méthode à moins que l'application ne soit réellement ouverte. Si vous souhaitez mettre à jour le numéro de badge lors de la réception d'une notification, vous devez définir la propriété Badge de la notification json Push sur le numéro souhaité.
Si vous, si vous envoyez un message normal (sans utiliser json), il y a une bascule pour incrémenter le numéro de badge, il suffit de cocher cette case. Si vous utilisez Json, utilisez ceci:
{
"aps": {
"alert": "Test Push Notification",
"sound": "yourSound.aiff",
"Badge": "desiredNumber"
}
}
Veuillez noter que si vous ne souhaitez pas envoyer cela à partir du serveur, vous pouvez également l'envoyer d'un appareil à un autre en utilisant le client Push de Parse, accédez à vos paramètres dans l'application sur Parse.com et activez "Client Push", vous pouvez puis envoyez le Json ci-dessus à l'appareil d'un autre utilisateur.
Chaque fois que le code est compilé, il affiche l'icône de badge qui est précédemment stockée dans votre application. Si vous ne définissez pas l'icône de badge = 0 dans votre application, le numéro d'icône de badge s'affiche dans votre application chaque fois que vous le compilez ou entrez en arrière-plan.
Maintenant, pour votre problème, utilisez l'icône de badge comme
var badgeCount = 0
UIApplication.sharedApplication().applicationIconBadgeNumber = ++badgeCount
De plus, chaque fois que vous avez terminé votre tâche, faites l'icône de badge à 0 sinon il affichera une icône de badge dans votre application
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
J'ai travaillé sur un scénario similaire et la solution finale que j'ai trouvée pour incrémenter et réinitialiser les numéros de badge.
Incrémenter le numéro de badge
NSUserDefaults
).applicationIconBadgeNumber
Et je mets à jour le nombre en mémoire.Réinitialiser le numéro de badge
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
dans didFinishLaunchingWithOptions
de AppDelegate
. J'ai également réinitialisé le nombre dans la mémoire.Aucune de ces réponses n'est plus valable.
Vous devez regarder votre code Push, pas votre AppDelegate
Depuis les documents Parse:
badge: (iOS/OS X only)
the value indicated in the top right corner of the app icon.
This can be set to a value or to Increment in order to increment the current value by 1.