2016-06-01 9 views
2

Ich bin auf der Suche nach einer Möglichkeit, Daten in eine App ähnlich wie APNs zu pushen, die aber keine APNs verwendet. Gibt es eine Möglichkeit, dies zu tun? Der Grund, warum ich dies tun möchte, ist, wenn der Benutzer Benachrichtigungen deaktiviert, möchte ich immer noch Daten an die App senden können, ohne dass Benutzereingaben wie ein Pull zu aktualisieren oder was Sie haben. Ich möchte nur, dass es passiert, wenn die App im Vordergrund steht.Gibt es eine Möglichkeit für den Server, Daten ohne Push-Benachrichtigungen in eine App zu übertragen?

Grundsätzlich möchte ich, dass Push-Benachrichtigungen wie üblich verwendet werden. Wenn neue Daten verfügbar sind, wird der Benutzer benachrichtigt, wenn die App geschlossen ist. Der Benutzer kann dann auf die App klicken und die neuen Informationen anzeigen. Wenn der Benutzer dann Push-Benachrichtigungen über die Einstellungen deaktiviert, erhält der Benutzer keine Benachrichtigungen mehr, aber die App wird weiterhin aktualisiert, wenn neue Daten verfügbar sind.

Ich habe versucht, mit GCM/FCM aber Huckepack von APNs, so dass es nicht funktioniert, wenn die Einstellung für Benachrichtigungen deaktiviert ist.

Ist das überhaupt möglich?

Antwort

8

Wenn der App im Vordergrund steht, haben Sie zwei Möglichkeiten:

1) Poll - zum Beispiel alle paar Sekunden, um Sie über ein Netzwerk Anruf für neue Daten abzufragen. Dies ist möglicherweise möglich, wenn Sie eine Häufigkeit erraten können, mit der Sie neue Daten erhalten. Aber wie Sie sich vorstellen können, ist dies ziemlich unpraktisch/verschwenderisch, wenn Sie dies sehr oft tun müssen.

2) Push - Sie können eine persistente HTTP-Verbindung (Web-Socket) öffnen und neue Daten vom Server an den Client senden. Dies ist eine schwierigere Architektur (Publish-Subscribe) zu implementieren als Polling, aber definitiv die Zeit wert, wenn Sie irgendeine Art von Echtzeitsystem implementieren (denken Sie an neue Facebook-Posts auf der Timeline, neue Tweets). Für Websockets können Sie eine selbst entwickelte Lösung verwenden (z. B. http://socket.io/) oder Sie können viele verfügbare Lösungen von Drittanbietern (wie http://pubnub.com usw.)

verwenden
Verwandte Themen