4

"didRegisterForRemoteNotificationsWithDeviceToken"は、アプリケーションがロードされるたびに呼び出され、PHPサーバーまたはアプリケーションがデータベースに格納するために再送信するかどうかを処理する必要があることを確認したかっただけですか?それとも私が紛失しているものがありますか? ジェームズdidRegisterForRemoteNotificationsWithDeviceToken - プッシュ通知

答えて

16

まず

おかげで、あなたは、このメソッドを直接呼び出すことを意味するものではありません。むしろ、アプリの起動ごとにregisterForRemoteNotificationTypes:に電話をかけて、実装しなければならないapplication:didRegisterForRemoteNotificationsWithDeviceToken:を呼び出す必要があります。

第2に、はい、トークンを毎回サーバーに再送信することになっています。ドキュメントから:

アプリケーショントークンを要求し、アプリケーションが起動するたびにプロバイダーに渡すことで、プロバイダーにデバイスの現在のトークンがあることを確認するのに役立ちます。ユーザーがバックアップを作成したデバイス以外のデバイスにバックアップを復元した場合(たとえば、ユーザーが新しいデバイスにデータを移行する場合)は、少なくとも1回はアプリケーションを起動して再度通知を受信する必要があります。ユーザーがバックアップデータを新しいデバイスに復元するか、オペレーティングシステムを再インストールすると、デバイストークンが変更されます。さらに、デバイストークンをキャッシュして、それをプロバイダに渡すことはありません。いつでもシステムからトークンを入手できます。アプリケーションが以前に登録されている場合、registerForRemoteNotificationTypes:を呼び出すと、追加のオーバーヘッドを発生させることなく、iOSがデバイストークンをデリゲートに即座に渡します。

+1

ありがとう - 私は "application:didRegisterForRemoteNotificationsWithDeviceToken"と呼んでいませんでした。これは、デリゲートメソッドとして呼び出されたという意味でした。 – jodm