web-dev-qa-db-ja.com

Google / Appleプッシュ通知サービス(APNS / GCM)

AndroidおよびiOS用のアプリケーションを作成しようとしています。両方のアプリケーションでプッシュ通知を使用したいと思います。通知を送信するサーバーアプリを用意します。

私が理解しようとしているのは、ユーザーのデバイスをどのように保存できるかです。これにより、APNSまたはGCMで使用する必要のあるサービスがわかります。

指示の1つは、アプリで電話の種類を設定し、この情報をサーバー側に保存することですが、ユーザーが電話をiOSからAndroidに変更した場合、ユーザーのデータストレージを使用して情報を収集する必要がありますすべてのユーザーについて、ユーザーがAndroidタブレットおよびiOSスマートフォンを持っている場合のシナリオをカバーしていません).

より一般的にして、通知を両方のサービスAPNSとGCMに同時にディスパッチします。どちらかがエラーを返しますか?

このようなシナリオのベストプラクティスは何ですか。

17
Dmitry R

APNSとGCMの実装は非常に簡単です。

  • APNS(iOSデバイス)およびGCM(Androidデバイス)がAppleおよびGoogleサーバー)のプッシュ通知に登録すると、すべてのデバイスに対して一意のトークンが生成されます。
  • その後、デバイスIDまたはユーザーID(デバイスのサーバー上の一意のID)とデバイスのOSを使用して、そのデバイストークンを保存する必要があります。

同様に、iOSデバイスはサーバー(バックエンド)でこの情報を送信しています。このJSON形式を使用できます-{"token":"abcdedfgehik2bd3d3ff3sffssdff","os":"iOS","userid":34}

Androidデバイスの場合-{"token":"erydnfbdbdjskd76ndjs7nnshdjs","os":"Android","userid":35}

これにより、デバイスのOS、およびプッシュ通知の送信に使用されるユーザー情報と一意のトークンを識別できます。

28
Devel

デバイスがプッシュサービスに登録するときに、Unique id (UUID)を作成し、一意のIDを登録キーおよび必要なその他の情報とともにサーバーに送信できます。そうすることで、使用しているすべてのデバイスを取得し、それらすべてに通知をディスパッチします

3
tyczj