Aktualizuję znaczek iOS bez powiadomień push

86

Widziałem kilka aplikacji do zrobienia, które aktualizują odznaki aplikacji o północy, zawsze pokazując poprawną liczbę należnych zadań. Robią to bez użycia powiadomień push - więc moje pytanie brzmi: jak to robią? Czy używają lokalnych powiadomień - jeśli tak, czy są wywoływane, gdy urządzenie jest wyłączone? Jestem trochę zdezorientowany i byłbym wdzięczny za wkład.

fabian789
źródło

Odpowiedzi:

137

Spróbuj tego

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Aby to zrobić za pośrednictwem lokalnych powiadomień, musisz ustawić wartość w applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge
raaz
źródło
1
W ten sposób zmieniasz numer odznaki - ale aby to zrobić, gdy aplikacja działa w tle lub gdy telefon śpi, być może będziesz musiał zajrzeć do lokalnych powiadomień lub zaplanowanych zadań.
Jasarien
2
W systemie iOS 8.0 i nowszym aplikacja musi zarejestrować się w celu otrzymywania powiadomień użytkownika za pomocą - [UIApplication registerUserNotificationSettings:], zanim będzie można ustawić znaczek ikony.
unom
17

I dla wszystkich, którzy używają nowego i błyszczącego Swift:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber
Jiri Trecak
źródło
2
sugerując szybkie odpowiedzi, dobrym zwyczajem jest uwzględnienie wersji, którą omawiasz, ponieważ jest ona teraz bardzo dynamiczna.
Juan Boero,
tak masz rację ; W tym przypadku jednak w składni nie ma nic, co mogłoby się zmienić (jest to proste przypisanie), więc prawdopodobnie nie jest potrzebne :)
Jiri Trecak
3
Jiri, zabawny komentarz z perspektywy czasu ;-)
Tim
13

Od iOS 4.0 możesz uruchamiać lokalne powiadomienia na wszystkich urządzeniach z co najmniej iOS 4.0. Zajrzyj do UILocalNotificationzajęć, pozwala ustawić odznakę o północy bez uruchamiania aplikacji.

JustSid
źródło
Uhm, iPhone nie jest nawet w stanie uruchomić budzika, gdy jest wyłączony, więc nie, odznaka się wtedy nie zaktualizuje. Ale kiedy włączysz go ponownie, uruchomi powiadomienia, które zaktualizują odznakę.
JustSid
Ok, to właśnie chciałem wiedzieć. Dzięki!
fabian789
7

Seta UIApplication„s applicationIconBadgeNumberwłaściwość w kodzie, gdy aplikacja jest uruchomiona:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;
Vladimir
źródło
0

Do celu C musisz użyć:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            
Vaibhav Shiledar
źródło
0

Szybki 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Ben
źródło