14

AndroidとiOSのアプリケーションを作成しようとしていますが、両方のアプリケーションでプッシュ通知を使用したいとします。通知を送信するサーバーアプリケーションを用意します。Google/Appleプッシュ通知サービス(APNS/GCM)

私が把握しようとしているのは、ユーザーのデバイスを保存する方法で、APNSまたはGCMを使用する必要があるサービスを知ることができます。

携帯電話の種類をアプリで設定してサーバー側に保存するのが1つの方法ですが、ユーザーが携帯電話をiOSからAndroidに変更するとどうなりますか?ユーザーがAndroidタブレットとiOS携帯電話を使用している場合のシナリオをカバーしているわけではありません。

もっと一般的にして、通知を両方のサービスAPNSとGCMに同時に送信します。いずれかがエラーを返しますか?

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

+2

どこかにデバイストークンが保存されていますか?デバイストークンとデバイスタイプ(およびデバイス上で実行されるアプリバージョン...)を専用テーブルに格納します。したがって、各ユーザは、必要な数のデバイスを登録することができます。通知ワーカースレッドは、どのデバイスにでもメッセージを送信する際に使用するプロセスとサーバーを認識します。この(トークン、タイプ、バージョン)は、ユーザーがログインするたびにサーバーに送信されます。 –

+1

プッシュの管理にwww.parse.comを使用しない理由は何ですか?毎月無料でたくさんのプッシュを行うことができ、それはあなたのためにすべてを処理します。 –

+0

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

答えて

24

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

  • APNS(のiOSデバイス)とGCM(Androidデバイス)のレジスタをAppleとGoogle Serverのプッシュ通知用に、すべてのデバイスに固有のトークンを生成します。
  • その後、デバイスのIDまたはユーザーID(デバイスのサーバー上の一意のID)とデバイスのOSと共に、そのデバイストークンを保存する必要があります。することができます。これにより {"token":"erydnfbdbdjskd76ndjs7nnshdjs","os":"Android","userid":35}

    から

同様とiOSデバイスは、あなたがこのJSONそれがされるのAndroidデバイスのためformat- {"token":"abcdedfgehik2bd3d3ff3sffssdff","os":"iOS","userid":34}

を使用することができ、あなたのサーバー(バックエンド)にこの情報を送信している デバイスのOS、プッシュ通知の送信に使用されるユーザー情報と固有のトークンを識別します。

3

デバイスがプッシュサービスに登録されている場合は、Unique id (UUID)を作成して、登録キーと必要なその他の情報とともにサーバーに一意のIDを送信できます。そのように、あなたはそれらのすべてにすべての使用が持っているデバイス・発送通知を持って

+0

を使用してテストすることができます。これはiOS端末には有効ですが、iOSとAndroid端末を区別するにはどうすればよいですか。通知をAPNSまたはGCMに転送するAPIを自分のサーバーで決定する必要があります。それとも、GCMではないと言うロジックを作成するだけですか? –

+0

どのタイプのデバイスであるかに関する情報を送信するとフラグを送信します – tyczj