токен устройства iphone: можно ли его сохранить на iPhone? - PullRequest
0 голосов
/ 08 июля 2010

Мне нужно разработать приложение, которое использует Push Notification определенным образом, и у меня возник довольно сложный вопрос: можно ли локально хранить токен устройства в изолированной программной среде приложения? Вот почему: в этом приложении должна быть реализована система уведомлений, которая позволяет пользователю подписываться только на некоторые конкретные события с iphone. Поэтому для этого мне нужно отправлять в мою базу данных токен устройства iPhone в любое время, когда приложение запущено, и из того, что я получаю, токен устройства доступен, только когда

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

называется правильно? Или есть ли способ получить эту информацию позже?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 21 октября 2010

Руководство по программированию push-уведомлений однако рекомендует не хранить токен локально:

"Приложение должно регистрироваться каждый раз, когда оно запускается, и предоставлять провайдеру текущий токен. Оно вызывает registerForRemoteNotificationTypes: чтобы начать процесс регистрации."

...

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

1 голос
/ 08 июля 2010

Вы должны хранить его где-нибудь на телефоне. NSUserDefaults - достойное место, чтобы сделать это, так как это не большой кусок данных, и вы можете легко получить его впоследствии. Я также рекомендовал бы сохранить его на своем сервере и обновлять только при изменении токена.

...