14

Ich versuche, Anwendung für Android und iOS zu erstellen, und ich möchte Push-Benachrichtigung für beide Anwendungen verwenden. Ich werde eine Server-App haben, die die Benachrichtigung sendet.Google/Apple Push-Benachrichtigungsdienst (APNS/GCM)

Ich versuche herauszufinden, wie wir das Gerät des Benutzers speichern können, damit ich weiß, welcher Dienst APNS oder GCM verwendet werden muss.

Eine der Richtungen ist, um den Telefontyp von der App eingestellt zu bekommen und diese Informationen auf der Serverseite zu speichern, aber was passiert, wenn der Benutzer sein Handy von iOS zu Android ändert, muss Datenspeicherung der einschließen Benutzer und sammeln Informationen für jeden Benutzer, deckt nicht Szenario, wenn Benutzer Android Tablet und iOS-Telefon hat.

Machen Sie es generischer und senden Sie die Benachrichtigung an beide Dienste APNS und GCM zur gleichen Zeit, eine von ihnen wird Fehler zurückgeben?

Würde ich gerne hören, was ist die beste Praxis für solche Szenarien?

+2

Sie haben Geräte-Token irgendwo gespeichert? Wir speichern Geräte-Token und Gerätetypen (und App-Versionen, die auf Geräten laufen) in einer dedizierten Tabelle. Jeder Benutzer kann somit so viele Geräte wie gewünscht registrieren lassen. Notification-worker-threads wissen dann, welcher Prozess und welcher Server beim Senden einer Nachricht an ein beliebiges Gerät verwendet werden sollen. Dieser (Token, Typ, Version) wird jedes Mal an den Server gesendet, wenn sich der Benutzer anmeldet. –

+1

Gibt es einen Grund, warum Sie www.parse.com nicht zur Verwaltung Ihrer Pushs verwenden? Es kann jeden Monat eine Menge Pushs kostenlos machen und es behandelt all dies für Sie. –

+0

http://stackoverflow.com/questions/33339774/gcm-google-cloud-messaging-for-ios-apps/35546895#35546895#answer-35546895 – abhi1992

Antwort

24

Es ist sehr einfach APNS und GCM zu implementieren:

  • Wenn APNS (iOS-Geräte) und GCM (Android Device) Register Für die Push-Benachrichtigung auf Apple und Google Server wird ein eindeutiges Token für jedes Gerät generiert.
  • Danach müssen Sie dieses Geräte-Token mit Ihrer Geräte-ID oder Benutzer-ID (eindeutige ID auf Ihrem Server für das Gerät) und dem Betriebssystem des Geräts speichern.

mögen und iOS-Gerät diese Daten auf Ihrem Server sendet (Backend) Sie dieses JSON Format- {"token":"abcdedfgehik2bd3d3ff3sffssdff","os":"iOS","userid":34}

Für Android-Gerät verwenden, kann es sein wird - {"token":"erydnfbdbdjskd76ndjs7nnshdjs","os":"Android","userid":35}

Damit können Sie Identifizieren Sie das Betriebssystem des Geräts sowie die Benutzerinformationen und das eindeutige Token, die zum Senden von Push-Benachrichtigungen verwendet werden.

3

Wenn sich das Gerät beim Push-Dienst registriert, können Sie eine Unique id (UUID) erstellen und dann die eindeutige ID zusammen mit dem Registrierungsschlüssel und anderen gewünschten Informationen an den Server senden. Auf diese Weise haben Sie alle Geräte die Verwendung hat und Versandbenachrichtigungen an alle von ihnen

+0

Das klingt für iOS-Geräte, aber wie kann ich zwischen iOS- und Android-Geräten unterscheiden, muss ich auf meinem Server entscheiden, welche API die Benachrichtigung an APNS oder GCM weiterleiten soll. Oder einfach eine Logik erstellen, die sagt, wenn nicht APSN, es ist GCM? –

+0

senden Sie eine Markierung, wenn Sie die Information senden, welche Art von Gerät es ist – tyczj