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.

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

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

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.


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;

0

Do celu C musisz użyć:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

Szybki 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.