didRegisterForRemoteNotificationsWithDeviceToken — Push-уведомления

Я просто хотел подтвердить, что «didRegisterForRemoteNotificationsWithDeviceToken» должен вызываться каждый раз, когда загружается приложение, и мой PHP-сервер или приложение должны иметь дело с тем, следует ли повторно отправлять для хранения в моей базе данных? Или я что-то упускаю?

Спасибо, Джеймс.


person jodm    schedule 26.01.2011    source источник


Ответы (1)


Во-первых, вы не должны вызывать этот метод напрямую. Скорее, вы должны вызывать registerForRemoteNotificationTypes: при каждом запуске вашего приложения, которое затем, в свою очередь, вызывает application:didRegisterForRemoteNotificationsWithDeviceToken:, который вы должны реализовать.

Во-вторых, да, вы должны каждый раз повторно отправлять токен на свой сервер. Из документации:

Запрашивая токен устройства и передавая его провайдеру каждый раз при запуске приложения, вы гарантируете, что у провайдера есть текущий токен для устройства. Если пользователь восстанавливает резервную копию на устройстве, отличном от того, для которого была создана резервная копия (например, пользователь переносит данные на новое устройство), он или она должны запустить приложение хотя бы один раз, чтобы оно снова получало уведомления. Если пользователь восстанавливает данные резервной копии на новое устройство или переустанавливает операционную систему, токен устройства изменяется. Более того, никогда не кэшируйте токен устройства и не отдавайте его своему провайдеру; всегда получайте токен из системы всякий раз, когда он вам нужен. Если ваше приложение ранее зарегистрировано, вызов registerForRemoteNotificationTypes: приводит к тому, что iOS немедленно передает токен устройства делегату без дополнительных накладных расходов.

person Ole Begemann    schedule 26.01.2011
comment
Спасибо. Просто для пояснения. Я не вызывал приложение: didRegisterForRemoteNotificationsWithDeviceToken. Я имел в виду, что оно было вызвано как метод делегата. - person jodm; 26.01.2011