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.