2 Stimmen

Anwendungssymbol-Badge wird kurz gelöscht, aber die Badge-Nummer kehrt innerhalb von Sekunden in GameKit Turn-Based-App zurück

Ich möchte das Anwendungssymbol-Badge jedes Mal löschen, wenn der Benutzer die Anwendung öffnet. In meiner App lösche ich das Badge mit dem folgenden Code:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] cancelAllLocalNotifications];

Ich habe diesen Code in beide - (void) applicationDidFinishLaunching:(UIApplication*)application y -(void) applicationWillEnterForeground:(UIApplication*)application . Ich habe mich auch für Fernbenachrichtigungen in - (void) applicationDidFinishLaunching:(UIApplication*)application bevor Sie den obigen Code ausführen, um den Ausweis zu löschen.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge)];

Wenn ich die App starte und dann zum Startbildschirm zurückkehre, sehe ich, dass das Abzeichen der App gelöscht wurde, aber es kehrt innerhalb von ein oder zwei Sekunden zu genau demselben Wert zurück, den es vor dem Löschen hatte.

Ich selbst verwende keine lokalen oder Push-Benachrichtigungen, sondern GameKit verwendet sie, weil es sich um ein rundenbasiertes Spiel handelt. Wenn bestimmte Ereignisse eintreten (z. B. wenn der lokale Spieler in einem Spiel an der Reihe ist), wird eine Push-Benachrichtigung an sein Gerät gesendet.

Was könnte ich falsch machen?

2voto

louis.leon Punkte 114

Dies ist keine Lösung für das Problem, sondern meine Beobachtungen, die ich gemacht habe:

Zuerst war mein Spiel ein TurnBasedMatch von GameKit, aber ich musste auf ein normales Spiel umstellen, also denke ich, dass ich den Code noch einmal durchgehen muss, um zu überprüfen, ob ich die lästigen Benachrichtigungen, die GameKit sendet, finden kann.

Es ist auf jeden Fall GameCenter: Ich habe zwei Testaccounts, einer läuft auf meinem iPhone, einer im Simulator. Wenn ich diese umschalte, ändert sich auch der "BageCount". In meinem AppDelegate habe ich ihn auf -1 gesetzt (mit 0 funktioniert es bei mir nicht):

[UIApplication sharedApplication].applicationIconBadgeNumber = -1;

Die AppBage verschwindet für 1-2 Sekunden und kommt dann wieder zurück.

Irgendwie muss es doch eine Lösung geben, um diese Benachrichtigungen aus dem "GameCenter - NotificationCenter" zu löschen!

1voto

Sonny Saluja Punkte 7043

Ich habe heute ein ähnliches Problem bei meinem Gerät festgestellt. Mir ist aufgefallen, dass das Gerät, auf dem ich dieses Problem hatte, mit dem VPN meines Unternehmens verbunden war. Nachdem ich die VPN-Verbindung ausgeschaltet hatte, war die Marke ein für alle Mal verschwunden. Ich vermute, dass das Gerät während des Löschvorgangs nicht in der Lage war, mit APNS zu kommunizieren.

Keine überzeugende Antwort, aber seitdem habe ich das Problem nicht mehr.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X