Aktualisieren des iOS-Abzeichens ohne Push-Benachrichtigungen

85

Ich habe einige Aufgaben-Apps gesehen, die ihre App-Abzeichen um Mitternacht aktualisieren und immer die richtige Anzahl fälliger Aufgaben anzeigen. Sie tun dies ohne die Verwendung von Push-Benachrichtigungen - meine Frage lautet also: Wie machen sie das? Verwenden sie lokale Benachrichtigungen - wenn ja, werden diese beim Ausschalten des Geräts aufgerufen? Ich bin ein wenig verwirrt und würde mich über Beiträge freuen.

fabian789
quelle

Antworten:

137

Versuche dies

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Um dies durch lokale Benachrichtigungen zu tun, müssen Sie den Wert in festlegen applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge
raaz
quelle
1
Auf diese Weise ändern Sie die Ausweisnummer. Um dies jedoch zu tun, während sich die App im Hintergrund befindet oder wenn das Telefon schläft, müssen Sie möglicherweise lokale Benachrichtigungen oder geplante Aufgaben prüfen.
Jasarien
2
In iOS 8.0 und höher muss sich Ihre Anwendung mit - [UIApplication registerUserNotificationSettings:] für Benutzerbenachrichtigungen registrieren, bevor Sie das Symbol-Badge festlegen können.
Unom
17

Und für alle, die neuen und glänzenden Swift verwenden:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber
Jiri Trecak
quelle
2
Wenn Sie schnelle Antworten vorschlagen, ist es eine gute Praxis, anzugeben, welche Version Sie behandeln, da sie derzeit sehr dynamisch ist.
Juan Boero
ja, du hast recht ; In diesem Fall gibt es jedoch nichts in der Syntax, was sich möglicherweise ändern könnte (es ist eine einfache Zuweisung), also wahrscheinlich nicht benötigt :)
Jiri Trecak
3
Jiri, amüsanter Kommentar im Nachhinein ;-)
Tim
13

Seit iOS 4.0 können Sie lokale Benachrichtigungen auf allen Geräten auslösen, auf denen mindestens iOS 4.0 ausgeführt wird. Schauen Sie sich die UILocalNotificationKlasse an, damit Sie das Abzeichen um Mitternacht festlegen können, ohne dass Ihre App ausgeführt wird.

JustSid
quelle
Ähm, das iPhone kann den Wecker nicht einmal starten, wenn es ausgeschaltet ist. Nein, das Abzeichen wird dann nicht aktualisiert. Wenn Sie es jedoch wieder einschalten, werden die Benachrichtigungen ausgelöst, mit denen das Abzeichen aktualisiert wird.
JustSid
Ok, das wollte ich wissen. Vielen Dank!
fabian789
7

Legen Sie UIApplicationdie applicationIconBadgeNumberEigenschaft in Ihrem Code fest, wenn die Anwendung ausgeführt wird:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;
Vladimir
quelle
0

Für Ziel C müssen Sie Folgendes verwenden:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            
Vaibhav Shiledar
quelle
0

Swift 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Ben
quelle