2013-07-25 4 views
7

Gibt es eine Möglichkeit zum Zurücksetzen der an den GCM-Server gerichteten Benachrichtigungsanforderung?Rollback/Abbrechen der Android-Gcm-Benachrichtigung

Wie in, eine GCM-Nachricht-Anfrage wird GCM-Server platziert. Wenn der Benutzer die Nachricht im Web sieht, bevor er in Mobile online ist, sollte die GCM-Anforderung zurückgesetzt werden. Und der Benutzer sollte die Benachrichtigung im Handy nicht sehen.

Antwort

1

Es gibt keinen eingebauten Mechanismus für einen solchen Rollback in dem Fall, den Sie beschreiben. Sie können versuchen, es selbst zu implementieren. Wenn Ihr Server bemerkt, dass die Nachricht im Web angezeigt wurde, können Sie eine weitere GCM-Nachricht mit einigen Daten an das Gerät senden, die eine Rollback-Anforderung darstellen. Wenn Sie diese Nachricht verarbeiten, sollten Sie alle Benachrichtigungen löschen, die von Ihrer App auf diesem Gerät erstellt wurden (ich bin mir nicht sicher, ob dies möglich ist, Sie müssen dies überprüfen). In einem ähnlichen Fall gibt es einen solchen Mechanismus: Wenn der Benutzer mehrere Android-Geräte hat und Sie eine GCM-Nachricht an alle senden (mit der neuen Funktion user notifications), sobald der Benutzer die Benachrichtigung auf einem Gerät anzeigt, es würde automatisch von den anderen Geräten entfernt werden.

  • Wenn eine Nachricht auf einem Gerät behandelt wurde, wird die GCM-Nachricht auf den anderen Geräten zurückgewiesen. Wenn ein Benutzer beispielsweise eine Kalenderbenachrichtigung auf einem Gerät verarbeitet hat, wird die Benachrichtigung auf den anderen Geräten des Benutzers deaktiviert.
  • Wenn eine Nachricht noch nicht an ein Gerät gesendet wurde und diese verarbeitet wurde, wird sie vom GCM-Server aus der nicht gesendeten Warteschlange für die anderen Geräte entfernt.