5

Die Google Mail-App für iOS kann Push-Benachrichtigungen empfangen, wenn die App nicht ausgeführt wird (wie bei den meisten E-Mail-Apps).iOS-Push-Benachrichtigungen per Fernzugriff ablehnen

Es ist jedoch auch in der Lage, alle Gmail-Push-Benachrichtigungen vom Gerät zu löschen, wenn die ungelesene Anzahl der Posteingänge des Benutzers null ist, , selbst wenn die App nicht ausgeführt wird.

Hier ist eine Beispielsequenz: 1. Erhalten Sie eine neue E-Mail in Ihrem Google Mail-Konto. 2. Das iOS-Gerät zeigt eine Benachrichtigung für die neue Nachricht an. 3. Gehen Sie zur Google Mail-Website und öffnen Sie die Nachricht (markieren Sie die Nachricht als "Lesen"). 4. Die Benachrichtigung auf dem iOS-Gerät wird abgelehnt.

Hinweis: [[UIApplication sharedApplication] scheduledLocalNotifications] bietet nur lokale Benachrichtigungen, d. H. Solche, die innerhalb der iOS App selbst erstellt wurden.

Soweit Apples documentation for APNS beschreibt, gibt es keine Möglichkeit zu remotely launch an app into the background, und es gibt keine Möglichkeit, eine Remote-Benachrichtigung zu entlassen.

Also, wie funktioniert die Gmail iOS App das?

Antwort

5

Ich war in der Lage, alle Push-Benachrichtigungen zu löschen, indem ich diese Nutzlast mit Parse. Ich schätze, solange Sie content-available und badge liefern, sollten Sie in der Lage sein, das gleiche zu tun. Ich musste keinen anderen Code im AppDelegate schreiben, aber ich musste die Push-Benachrichtigungen im Projektziel capabilities aktivieren.

curl -X POST \ 
-H "X-Parse-Application-Id: xxxxxxxxxxx" \ 
-H "X-Parse-REST-API-Key: xxxxxxxxxx" \ 
-H "Content-Type: application/json" \ 
-d '{ 
     "data": { 
     "content-available": "1", 
     "badge":"0", 
     "sound":"" 
     }, 
     "where": {"something":"something_else"} 
    }' \ 
https://api.parse.com/1/push 
+0

Sie haben Recht - der wichtige Teil besteht darin, das Abzeichen auf 0 zu setzen, wodurch alle Fernmeldungen gelöscht werden. – ebi

0

Es gibt eine "Silent Push" -Funktion in iOS, mit der Ihre App nach dem Empfang einer UI-losen Push-Benachrichtigung im Hintergrund aktiviert und aktualisiert werden kann.

Session 713 at WWDC 2014 beschrieben dies ausführlich:

Silent-Benachrichtigungen, sie sind Nutzlasten nur schieben, die von Ihre APNs-Server gesendet werden, dass anstelle von einer Benachrichtigung des Benutzers wie eine Warnung oder einen Ton oder ein Abzeichen präsentiert auf dem Bildschirm, iOS, wenn es erhält, dass Push, wird stattdessen Ihre App im Hintergrund wecken, so dass Ihre App kann einige Hintergrundbildverarbeitung oder Informationen Verarbeitung.

In diesem Fall Ihre Anwendung ist in diesem Fall Inhalte von einem Server holen, Ihre Anwendung abruft Inhalte von einem Server, so dass das nächste Mal, wenn die Benutzer auf Ihrem App-Symbol tippen passieren und es in den Vordergrund , diese Information ist da und bereit, so dass niemand auf einen Lade-Spinner warten muss, um abzuschließen und all das andere Zeug.

+0

Die stille Push-Funktion, d.h.Das Flag "content-available" liefert die Benachrichtigung nur an die App, wenn sie bereits im Vordergrund oder im Hintergrund ausgeführt wird. Es wird die App jedoch nicht als Reaktion auf die Benachrichtigung starten. – ebi

0

Versuchen Sie dies, wenn Ausweisnummer bereits gesetzt ist,

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 

oder dies versuchen, wenn nicht

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 

gesetzt Dies würde Ihre Push-Benachrichtigungen und lokale Benachrichtigung löschen.

+0

Hinweis - Dies löscht alle Benachrichtigungen, sowohl remote als auch lokal. – ebi