0

このタイプの状況が発生した場合、私のアプリは現在、以前のアプリケーション ユーザー アカウントに関連付けられているプッシュ通知を受信して​​います。

  1. プレーヤーがアプリをインストールし、「bob」として登録します
  2. Web サービスに登録されたボブのデバイス トークン
  3. プレーヤーはアプリを再インストールし、「phil」として登録します (同じデバイス上)
  4. Web サービスに登録された phil のデバイス トークン

プレーヤーが「phil」としてログインしている場合でも、「bob」と「phil」に関連付けられたアカウントのプッシュ通知を引き続き受け取ります。

UDID を使用していた場合、デバイスごとに 1 つのデバイス トークンのみが登録されるようにすることができたので、プレーヤーの古い Web サービス アカウント「bob」から UDID とデバイス トークンを削除して、デバイスごとにアクティブなアカウントを 1 つだけ確保しました。これは、プレーヤーが「phil」として登録し、Web サーバーがプレーヤーが同じ UDID で新しいアカウントを登録したことを確認し、その UDID を持つ古いアカウント (つまり「bob」) から UDID とデバイス トークンを削除した場合に発生します。アカウント)。誰かが (同じデバイスまたは新しいデバイスで) そのアカウントに再度ログインするまで、bob アカウントにプッシュ通知が送信されることはありません。

ただし、CFUDIDCreate を使用する場合、インストールごとに変更される可能性があるため、これはうまく機能しません。

現在ログインしているユーザーに対してのみプッシュ通知が受信されるようにするにはどうすればよいですか? 別の言い方をすれば、Web サーバーがデバイスごとに 1 つのデバイス トークンのみを保存するようにするにはどうすればよいでしょうか?

4

3 に答える 3

2

デバイス固有の識別子ではなく、APNS トークンをサーバー側のキーにすることができます。アプリを再インストールするときに、既存の (APNS トークン、「bob」) レコードを (APNS トークン、「phil」) に置き換えることで、アプリの再インストール時にトークンと bob のアカウント間のリンクを削除します。

私が知る限り、APNS トークンはアプリの再インストール間で変更されないため、これは機能するはずです。(iOS の将来のバージョンでの再インストールの間に変更されたとしても、古いトークンは無効になり、デバイスは bob に送信された通知を受信しないため、問題にはなりません)。

于 2012-08-22T09:59:50.317 に答える
1

アプリの再インストールの場合、生成されたデバイス トークンは以前と同じですか? 違うと思う。サーバーに 2 つの異なるデバイス トークンが登録されています。1 つは「bob」用で、もう 1 つは「phil」用です。

この場合、「bob」を参照するトークンは無効です。APNS フィードバック サービスを使用してこれをフィルタリングできます。APNS フィードバック サービスは、「配信の試行に失敗したデバイスのアプリケーションごとのリストで継続的に更新されます。デバイスはバイナリ形式でエンコードされたデバイス トークンによって識別されます. プロバイダーは定期的にフィードバック サービスに問い合わせて, アプリケーションのデバイス トークンのリストを取得する必要があります. 各アプリケーションはそのトピックによって識別されます.識別されたデバイスに登録されている場合、プロバイダーはこれらのデバイスへの通知の送信を停止する必要があります。」

幸運を!

于 2012-08-22T09:52:39.790 に答える
0

iOS 9.x 以降では、デバイス トークンは、アプリのインストールごとに常に区別され、一意になります。UUId トークンをキーチェーンに保存できます。アプリの再インストール後も、キーチェーンは常にトークンを保持します。キーチェーンのドキュメントはこちらにあります

于 2016-05-11T09:08:55.030 に答える