2

タイトルはすべてを物語っています... アプリを起動するたびに registerForRemoteNotificationTypes を呼び出しています。それは初めて見事に機能しました。デバイス トークンを取得しましたが、それを NSLog しただけです。

アプリを再度実行しています... didRegister* コールバックも didFail* コールバックも実行されていません。私のコード/ネットワークに関しては何も変わっていません。

これは正しい動作ですか?ここ StackOverflow で矛盾する回答が表示されます。 This SO answerは、 didRegister* コールバックが毎回発生する必要があることを意味します。デバイス トークンをキャッシュするべきではないと言う人もいます。まあ、それでいいのですが、最初にトークンを取得したときに何もしなかったので、今は失われていますか??? もちろん、通常、アプリはトークンをプッシュ通知サーバーにプッシュする必要がありますが、私はここで開発段階にあり、そうしませんでした。それで、このトークンが失われ、私のアプリは別のトークンを受け取ることができなくなりましたか? Apple のドキュメントによると、アプリを起動するたびに registerForRemoteNotificationTypes を呼び出すように指示されていることを考えると、これは奇妙に思えます。毎回新しい (またはリサイクルされた) トークンを取得しない場合、これのポイントは何ですか? それとも、ここで何か他のことが起こっていますか?

4

1 に答える 1

2

didRegisterForRemoteNotificationsWithDeviceToken は毎回実行する必要があります。

私の電話は異常な状態だったに違いありません。最後に、通知センターにアプリがリストされていることに気付きましたが、アプリ名の下にバッジ、アラート、またはサウンドのテキストはありませんでした. 設定を手動で編集し、これらの通知を有効にしました。次にアプリを実行したときに、didRegister コールバックがトリガーされました。

アラート/バッジ/サウンドを無効にしても、悪い状態を再現できませんでした。毎回コールバックを取得しています。これをまぐれにチョークするつもりです。

于 2013-01-09T00:28:37.313 に答える