0

私はプッシュ通知のサービスの設計と開発を検討しており、プッシュ通知の登録とトークンの保存に関して、AppleAppでの処理の順序を理解しようとしています。私が現在開発しているのは、サーバー上の特定の処理で発生する個々の変更をサブスクリプションできるサービスです。それらが発生すると、電話ユーザーはタイプ「A」、「B」、または「C」のメッセージを受信する場合があります。電話ユーザーは、必要に応じて、これらの各タイプを個別に「サブスクライブ」する必要があります。それ以外の場合は、無視してサブスクライブできません。

そのため、電話番号4のユーザーFredは、アプリを起動してログインし、プッシュ通知として送信されるイベントのサブスクリプションをオンまたはオフにすることができます。

したがって、特定のサブスクリプションを使用して、Fredのログインから電話番号4のデバイストークンに詳細を関連付ける必要があります。

だから私の特に重要な質問はです。

電話がAPNSサーバーに接続してデバイストークンを取得する場合、これはアプリの起動時に自動的に行われますか?または、これを後のステップで開始できますか?つまり、アプリのログ画面を通過した後です。

デバイストークンを電話のアプリのデータストアに保存できますか(許可されていますか?)。または、アプリを実行するたびにアプリをAPNSサーバーに接続する必要がありますか?

アプリは、すでにAPNSサーバーを呼び出してトークンを取得したかどうか、または上記のように、アプリの実行時にAPNSサーバーを呼び出す必要があるかどうかをどのように認識しますか?

トークンの実行時にトークンをアプリのメモリに保存して、特定のメッセージを適切にサブスクライブおよびサブスクライブ解除できるようにすることはできますか?

また、特定のユーザーがすべてのデバイスで持つ可能性のあるすべてのサブスクリプションを一覧表示して、ユーザーが古いデバイスを削除できるようにする必要があります(電話を変更した場合)。または、APNSへの呼び出しからのデータに依存して(通知をプッシュしようとしたときに)、デバイストークンが無効になったことを通知できますか?

それとも、これをすべてまとめるより良い方法はありますか?

4

1 に答える 1

1

電話がAPNSサーバーに接続してデバイストークンを取得する場合、これはアプリの起動時に自動的に行われますか?または、これを後のステップで開始できますか?つまり、アプリにログインした後です。

アプリの起動後、アプリはregisterForRemoteNotificationTypesを呼び出してトークンを取得します。これにより、ユーザーに許可を求めるプロンプトが表示され、許可が付与されている場合はデバイストークンを使用してコールバックが呼び出されます。

デバイストークンを電話のAppsデータストアに保存できますか(許可されていますか?)。または、アプリを実行するたびにアプリをAPNSサーバーに接続する必要がありますか?

プッシュを送信するためにappleを呼び出すWebサーバーであるAPNプロバイダーを構築する必要があります。トークンを処理するのは、APNプロバイダーを使用するサーバーにトークンを投稿することです。アプリはAPNSに接続しません。プロバイダーは接続し、送信するプッシュがある場合に接続します。

トークンの実行時にトークンをアプリのメモリに保存して、特定のメッセージを適切にサブスクライブおよびサブスクライブ解除できるようにすることはできますか?

トークンはクライアントに保持できますが、実際に保持する必要はありません。APNを呼び出すのはWebサービスであるため、ユーザーのサブスクリプション設定を常に把握しておく必要があります。

また、特定のユーザーがすべてのデバイスで持つ可能性のあるすべてのサブスクリプションを一覧表示して、ユーザーが古いデバイスを削除できるようにする必要があります(電話を変更した場合)。または、APNSへの呼び出しからのデータに依存して(通知をプッシュしようとしたときに)、デバイストークンが無効になったことを通知できますか?

APNは、無効になったデバイストークンを返す、バッチで呼び出すフィードバックサービスも提供します。このサービスを利用できるだけでなく、利用する必要があります。Appleは、もはや有効ではないデバイスに繰り返し送信するアプリに腹を立てるでしょう。

それとも、これをすべてまとめるより良い方法はありますか?

はい! Parse.comは、クライアントコードに優れたラッパーを提供し、プロバイダーとフィードバックサービスを実行し、単一のデバイスのアイデアを、複数の通知タイプA、B、Cに必要なもののように聞こえる「チャネル」のアイデアに抽象化します。非常に簡単なステップバイステップのセットアップ、およびiOS用の他の便利なクラウドサービスのロードを提供します。(私は提携していませんが、大ファンです)。

于 2012-04-23T05:03:09.407 に答える