Aggiornamento del badge iOS senza notifiche push


86

Ho visto alcune app di cose da fare che aggiornano i loro badge a mezzanotte, mostrando sempre il numero corretto di attività da svolgere. Lo fanno senza l'uso di notifiche push, quindi la mia domanda è: come fanno? Usano le notifiche locali - in tal caso, vengono chiamate quando il dispositivo è spento? Sono un po 'confuso e apprezzerei un contributo.

Risposte:


137

Prova questo

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Per farlo tramite notifiche locali devi impostare il valore in applicationIconBadgeNumber

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

1
È così che si cambia il numero del badge, ma per farlo mentre l'app è in background o se il telefono è addormentato, potrebbe essere necessario esaminare le notifiche locali o le attività pianificate.
Jasarien

2
In iOS 8.0 e versioni successive, l'applicazione deve registrarsi per le notifiche utente utilizzando - [UIApplication registerUserNotificationSettings:] prima di poter impostare il badge dell'icona.
unom

17

E per tutti coloro che utilizzano Swift nuovo e brillante:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
quando si suggeriscono risposte rapide è buona norma includere quale versione si sta trattando, poiché al momento è molto dinamica.
Juan Boero

si hai ragione ; In questo caso, tuttavia, non c'è nulla nella sintassi che potrebbe cambiare (è semplice assegnazione) quindi probabilmente non è necessario :)
Jiri Trecak

3
Jiri, divertente commento col senno di poi ;-)
Tim

13

A partire da iOS 4.0 puoi attivare notifiche locali su tutti i dispositivi che eseguono almeno iOS 4.0. Guarda nella UILocalNotificationclasse, ti permette di impostare il badge a mezzanotte senza che la tua app sia in esecuzione.


Uhm, l'iPhone non è nemmeno in grado di avviare la sveglia quando è spento, quindi no, il badge non si aggiornerà allora. Ma quando lo riaccendi, attiverà le notifiche che aggiorneranno il badge.
JustSid

Ok, questo è quello che volevo sapere. Grazie!
fabian789

7

Imposta UIApplicationla applicationIconBadgeNumberproprietà di nel codice quando l'applicazione è in esecuzione:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

0

Per l'Obiettivo C devi usare:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

Swift 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.