2017-01-23 9 views
0

Ich versuche, den Badge-Wert per Fernzugriff über eine Push-Benachrichtigung zu aktualisieren. Alles funktioniert gut, aber wenn die App geöffnet ist, erhalte ich einen leeren Alarm (mit meinem App-Namen und einem Schließen-Button).Badge ohne Benachrichtigung aktualisieren, wenn App geöffnet ist

Ich lese über silent notifications in Apfels Dokumentation, aber es scheint, dass selbst mit Angabe von Inhalt-verfügbar: 1 in der Notification-Payload, die Nutzlast darf nicht Abzeichen für die Benachrichtigung still zu sein.

Ist das Aktualisieren des Ausweises ohne Benachrichtigung möglich?

Antwort

0

Wenn Sie eine automatische Push-Benachrichtigung verwenden, können Sie den Schlüssel badge nicht in das Wörterbuch aps aufnehmen, sodass Sie das Badge nicht direkt mit einem Silent Push aktualisieren können.

Sie können umfassen Ihre eigenen Schlüssel und Werte im aps Wörterbuch und das Wörterbuch ist in der didReceiveRemoteNotification:fetchCompletionHandlerUIApplicationDelegate-Funktion zur Verfügung.

In dieser Funktion können Sie Ihre eigenen „Abzeichen“ Schlüssel aus dem aps Wörterbuch extrahiert und diese die Ausweisnummer direkt mit der UIApplication Eigenschaft [applicationIconBadgeNumber] [1]

UIApplication.shared.applicationIconBadgeNumber = someValue 

So etwas zu aktualisieren:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { 
    if let badgeNumberStr = userInfo["myBadge"] as? String { 
     if let badgeNumber = Int(badgeNumberStr) { 
      application.applicationIconBadgeNumber = badgeNumber 
     } 
    } 
} 
+0

Ja, aber ich möchte auch, dass der Ausweis seinen Wert aktualisiert, wenn eine serverseitige Aktion ausgeführt wird. – pepollet

+0

Entschuldigung. Ich habe es falsch verstanden. Siehe mein Update – Paulw11

+0

Danke Ich verstehe diese Lösung und werde wahrscheinlich am Ende damit arbeiten. Um das Standard-Verhalten von ios zu verdeutlichen: Wenn im aps-Wörterbuch ein Ausweiswert eingestellt ist, wird eine Warnung angezeigt, unabhängig davon, wann die App geöffnet ist. – pepollet

Verwandte Themen