0

Ich entwickle eine App mit Ionic 2. Diese App muss Push-Benachrichtigungen erhalten.Wie erhalten Sie GCM-Push-Benachrichtigungen, die gesendet wurden, als die App gestoppt wurde oder das Gerät heruntergefahren wurde?

In einigen Situationen wird die App wie die "Force Stop" -Option in Android getötet werden. In anderen Situationen wird das Gerät heruntergefahren. In solchen Situationen erhält meine App keine Push-Benachrichtigungen, auch wenn das Hintergrundmodus-Plugin aktiviert ist.

Wie auch immer ich weiß, dass Push-Benachrichtigungen irgendwo gespeichert sind, in einer Warteschlange warten auf die Lieferung. Wenn ich meine App neu starte, werden die Benachrichtigungen, die gesendet wurden, während meine App nicht ausgeführt wurde, nicht automatisch von der App empfangen. Wenn ich zu diesem Zeitpunkt eine neue Benachrichtigung erhalte, werden alle Benachrichtigungen, die beim Stoppen meiner App gesendet wurden, von meiner App empfangen.

Meine Frage ist, wie kann ich meine App erzwingen, Benachrichtigungen zu erhalten, wenn die App gestoppt wurde, oder GCM bitten, diese Benachrichtigungen zu senden?

+0

Obwohl diese [SO Frage] (http://stackoverflow.com/questions/12073449/android-gcm-push-notification-device-doesnt-receive-notification-if-applicat?rq=1) in Android ist, Ich denke, es kann Ihnen eine Idee geben, wie GCM funktioniert, während die App gestoppt wird. – KENdi

+0

Danke für die Antwort. Dieses Thema behandelt nicht genau die gleiche Frage. Sie sprechen darüber, wie der Empfänger auf dem Hörer nicht genannt wird ** WHILE ** die App wird gezwungen geschlossen. Meine Zweifel bestehen darin, wie man die gesendeten Nachrichten erhält. ** WÄHREND ** die App geschlossen wird ** NACHDEM ** sie wieder geöffnet wird. Ich weiß, das ist möglich, weil ich einen Test gemacht habe. Um die Benachrichtigung zu erhalten, die gesendet wurde, während die App geschlossen wurde, muss GCM eine neue Benachrichtigung senden. Dieses Verhalten wurde auch bei Nachrichten angezeigt, die beim Ausschalten des Geräts gesendet wurden. – Natanael

Antwort

0

Bei Verwendung von GCM, wenn Ihre App angehalten wurde (nicht nur im Hintergrund), kann Ihre Anwendung keine GCM-Nachrichten empfangen. Diese Nachrichten werden verloren gehen.

Wenn Ihr Gerät nicht verbunden ist, zB: aus, dann können die Nachrichten per GCM gespeichert werden (siehe Feld time_to_live) und wenn das Gerät wieder online ist, wird die Nachricht gesendet, wenn die App zuvor nicht gestoppt wurde Es wird die Nachricht erhalten.

+0

Danke für die Antwort, aber es ist nicht genau die Antwort. Du kommst dir sehr nahe. Es sieht aus, dass time_to_live standardmäßig 4 Wochen beträgt. Die Eigenschaft, die hier benötigt wird, ist delay_while_idle als wahr. Korrigiere mich, wenn ich falsch liege. – Natanael

0

Gelöst!

Das Problem war eine GCM-Konfigurations-Backend im Back-End nicht in meiner App-Front-End.

Laut "this documentation" muss "delay_while_idle" auf "true" gesetzt sein.

Durch Ändern dieser Eigenschaft werden die Nachrichten auch dann übermittelt, wenn das Gerät ausgeschaltet oder die App beendet wird. Die Mensagens werden gesendet, sobald das Gerät gedreht oder die App geöffnet wird.