87 votes

Mise à jour du badge iOS sans notifications push

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

0 votes

Même question, mais pour macOS : stackoverflow.com/questions/392797/…

138voto

raaz Points 4201

Essayez ceci

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Pour faire cela à travers les notifications locales, vous devez définir la valeur dans applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// définissez ici la valeur du badge

1 votes

Voici comment changer le numéro du badge - mais pour le faire lorsque l'application est en arrière-plan ou si le téléphone est en veille, vous devrez peut-être examiner les notifications locales ou les tâches planifiées.

2 votes

Dans iOS 8.0 et versions ultérieures, votre application doit s'inscrire pour les notifications utilisateur en utilisant -[UIApplication registerUserNotificationSettings:] avant de pouvoir définir le badge d'icône.

17voto

Jiri Trecak Points 3936

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

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

13voto

JustSid Points 16366

Depuis iOS 4.0, vous pouvez déclencher des notifications locales sur tous les appareils fonctionnant au moins sous iOS 4.0. Regardez la classe UILocalNotification, elle vous permet de définir le badge à minuit sans avoir votre application en cours d'exécution.

0 votes

Uhm, l'iPhone n'est même pas capable de démarrer le réveil lorsqu'il est éteint, donc non, le badge ne se mettra pas à jour à ce moment-là. Mais lorsque vous le rallumez, il enverra la notification ou les notifications qui mettront à jour le badge.

0 votes

D'accord, c'est ce que je voulais savoir. Merci!

7voto

Vladimir Points 110327

Définissez la propriété applicationIconBadgeNumber de UIApplication dans votre code lorsque l'application est en cours d'exécution :

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

0voto

Vaibhav Shiledar Points 815

Pour Objective C vous devez utiliser :

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X