APNS Push Notification — токен устройства и цепочка ключей

Насколько мне известно, как только мы получили токен устройства из APNS, мы не можем получить его снова. (За исключением резервного копирования данных на новое устройство или компьютер или переустановки операционной системы или любого изменения токена устройства, которое вызовет didRegisterForRemoteNotificationsWithDeviceToken)

So,

Каждый раз, когда токен устройства изменяется, я заменяю и сохраняю новый токен устройства в цепочке для ключей, чтобы он не исчез для других целей (например, использование токена устройства для UUID).

  1. Возможно ли, когда данные связки ключей исчезли, а токен устройства не меняется?

    (Если да. Это приведет к тому, что didRegisterForRemoteNotificationsWithDeviceToken больше не будет вызываться и не сможет получить последний токен устройства.)

  2. Или события позволяют исчезнуть данным связки ключей (как правило), позволяют изменить токен устройства (или снова вызвать didRegisterForRemoteNotificationsWithDeviceToken)?

    В моем тесте

    О. «Сбросить все настройки» в iPhone не очистит данные связки ключей и не вызовет didRegisterForRemoteNotificationsWithDeviceToken.

    B. «Удалить все содержимое и настройки» на iPhone очистит данные связки ключей и удалит все ваши приложения. Поэтому при переустановке приложения оно снова вызовет didRegisterForRemoteNotificationsWithDeviceToken.

    Случай A и B меня не беспокоит, и я думаю, что обновление версии ОС, переустановка ОС или любое другое событие также позволяют изменить токен устройства.

  3. Кто-нибудь знает правильное соответствующее состояние изменения значения между связкой ключей и токеном устройства?

Спасибо!!

Обновить

Вопрос в том, что любое событие позволяет исчезнуть данным связки ключей (обычно) снова запускает «didRegisterForRemoteNotificationsWithDeviceToken» или нет?

Если нет, то какое событие?


person user3365407    schedule 10.10.2014    source источник
comment
вы можете получить токен устройства, когда вам нужно.   -  person Max    schedule 10.10.2014


Ответы (2)


«Насколько мне известно, как только мы получили токен устройства от APNS, мы не можем получить его снова»

Когда ваше приложение загружается, вы вызываете

[[UIApplication sharedApplication] registerForRemoteNotifications];

это приводит к вашему методу делегата приложения:

- (void) application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token

звонят. Токен передается вам каждый раз, когда ваше приложение запускается. Вам не нужно хранить в связке ключей.

Вам, конечно, необходимо отправить значение токена на серверную часть, чтобы его можно было использовать для создания push-сообщений.

person CSmith    schedule 10.10.2014
comment
Спасибо. Но в моем случае я использую токен устройства в качестве UUID для запроса некоторых данных из моей серверной части. Поэтому он должен быть сохранен в связке ключей. Поскольку токен устройства не изменяется, didRegisterForRemoteNotificationsWithDeviceToken: больше не будет вызываться (в документе сказано). Затем последний токен устройства не может быть получен, когда цепочка для ключей исчезла. - person user3365407; 11.10.2014

Мне приходит на ум одно предложение: использовать NSUserDefaults для хранения токена устройства, а затем извлекать его оттуда и отправлять в серверную часть каждый раз, когда приложение запускается в appDelegate.m.

person allwynmasc    schedule 11.10.2014