Mise à jour du badge iOS sans notifications push


86

J'ai vu quelques applications todo qui mettent à jour leurs badges d'application à minuit, affichant toujours le nombre correct de tâches à effectuer. Ils font cela sans utiliser de notifications push - ma question est donc: comment font-ils cela? Utilisent-ils des notifications locales - si tel est le cas, sont-ils appelés lorsque l'appareil est éteint? Je suis un peu confus et j'apprécierais quelques commentaires.

Réponses:


137

Essaye ça

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Pour ce faire via les notifications locales, vous devez définir la valeur dans applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge

1
C'est ainsi que vous modifiez le numéro de badge - mais pour le faire pendant que l'application est en arrière-plan ou si le téléphone est en veille, vous devrez peut-être consulter les notifications locales ou les tâches planifiées.
Jasarien

2
Dans iOS 8.0 et versions ultérieures, votre application doit s'inscrire aux notifications utilisateur à l'aide de - [UIApplication registerUserNotificationSettings:] avant de pouvoir définir le badge d'icône.
Unom

17

Et pour tous ceux qui utilisent le nouveau et brillant Swift:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
Lorsque vous suggérez des réponses rapides, il est recommandé d'inclure la version que vous couvrez, car elle est très dynamique en ce moment.
Juan Boero

Oui, tu as raison ; Dans ce cas cependant, il n'y a rien dans la syntaxe qui pourrait éventuellement changer (c'est une simple affectation) donc probablement pas nécessaire :)
Jiri Trecak

3
Jiri, commentaire amusant avec le recul ;-)
Tim

13

Depuis iOS 4.0, vous pouvez déclencher des notifications locales sur tous les appareils exécutant au moins iOS 4.0. Regardez dans la UILocalNotificationclasse, cela vous permet de définir le badge à minuit sans que votre application ne soit en cours d'exécution.


Euh, l'iPhone n'est même pas capable de démarrer le réveil lorsqu'il est éteint, donc non, le badge ne sera pas mis à jour alors. Mais lorsque vous le réactivez, il déclenchera la ou les notifications qui mettront à jour le badge.
JustSid

Ok, c'est ce que je voulais savoir. Merci!
fabian789

7

Définissez UIApplicationla applicationIconBadgeNumberpropriété de dans votre code lorsque l'application est en cours d'exécution:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

0

Pour l'Objectif C, vous devez utiliser:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

Swift 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.