2016-03-28 5 views
0

Ich bin eine iOS-Anwendung mit Benachrichtigung durch Google Cloud Messaging Service.(GCM).Wie wird mit der aktualisierten Registrierungs-ID von Google Cloud Messaging unter iOS verfahren?

Ich habe die Entwicklung Android-Anwendungen mit GCM gemacht worden, so ist bereit, einen iOS-App von GCM-Benachrichtigung (nicht mit APNS) zu machen. Fragen zu APNS-Token und GCM-Registrierungs-ID sind aufgetreten.

Frage # 1 Jedes Mal, wenn iOS App startet, prüft es, ob APNS-Token sich ändert oder aktualisiert, wenn es geändert wird. Wenn sich APNS ändert, fordert die iOS-App die neue GCM-Registrierungs-ID an?

Frage # 2 Wenn Frage 1 richtig ist, sollte ich einfach eine neue GCM Registrierungs-ID an meinen Push-Server senden?

Frage # 3 Ändert sich die GCM-Registrierungs-ID, selbst wenn das APNS-Token überhaupt nicht aktualisiert wurde?

Antwort

1

Frage # 1 prüft jedes Mal, wenn iOS App startet, ob das APNS-Token sich ändert oder aktualisiert, wenn es geändert wird. Wenn sich APNS ändert, fordert die iOS-App die neue GCM-Registrierungs-ID an?

Basierend auf diesen documentation, wenn GCM Registrierungstoken refresh von Server-Seite begonnen wird, muss die Client-Anwendung eine tokenRefreshed Nachricht mit dem GCM Registrierung Client/Server-Handshake behandeln.

Frage 2 Wenn Frage 1 richtig ist, sollte ich einfach eine neue GCM Registrierungs-ID an meinen Push-Server senden?

Geräte-Token können sich ändern. Daher muss sich Ihre App bei jedem Start neu registrieren und das empfangene Token an Ihren Server zurückgeben. Überprüfen Sie diese verwandte SO question.

Frage 3 Ändert sich die GCM-Registrierungs-ID, selbst wenn das APNS-Token überhaupt nicht aktualisiert wurde?

Entsprechend dieser SO question wird die Registrierungs-ID nicht geändert, wenn Token hs nicht aktualisiert wurde. "Der einzige bekannte Grund für die Änderung der Registrierungs-ID ist der alte Fehler, dass Apps automatisch abgemeldet werden, wenn sie während des Upgrades eine Nachricht erhalten. Bis dieser Bug behoben ist, müssen die Apps nach dem Upgrade noch register() aufrufen und die Registrierungs-ID kann dies tun In diesem Fall ändert sich der Aufruf von unregister() in der Regel auch die Registrierungs-ID. "

+0

Danke für die Antwort. Ich habe Code in registrationHandler eingegeben, um zu überprüfen, ob sich die Registrierungs-ID geändert hat. Ich habe herausgefunden, dass 'onTokenRefresh()' auch registrationHandler aufruft. Mit Ihrer Frage muss ich nicht mehr mit APNS-Token umgehen, wenn ich GCM auf iOS verwende. Habe ich recht? @abielita –

+0

@JadeLee: "Mit Ihrer Frage muss ich nicht mehr mit APNS-Token umgehen, wenn ich GCM auf iOS verwende. Habe ich Recht?" Ähm nein. Sie müssen ein APNS-Token erhalten, um sich bei GCM registrieren zu können, und Sie müssen Änderungen am APNS-Token vornehmen und es zur erneuten Registrierung bei GCM verwenden. – user102008

+0

@ user102008: Macht App nicht programmatisch, wenn APNS Token ändert? Im GCM-Beispiel von Google denke ich, dass die App eine neue GCM-Registrierungs-ID anfordert, wenn sich das APNS-Token ändert. Sonst wo soll ich das umsetzen? –