Получить уже полученный токен push-уведомления - PullRequest
4 голосов
/ 12 декабря 2011

Мы работаем над приложением, которое может получать push-уведомления. На нашем тестовом устройстве, когда нас попросили подтвердить отправку уведомлений, мы нажали кнопку «ОК», но не смогли сохранить полученный токен. (Запрос к серверу на нашей стороне не был обработан должным образом, и токен больше нигде не хранился нами).

Мы попробовали следующее, чтобы снова вызвать функцию didRegisterForRemoteNotificationsWithDeviceToken (безрезультатно):

  • Полностью удалите приложение и переустановите
  • Отключить уведомления для нашего приложения в настройках iPhone

Однако мы не можем заставить его снова «запросить» нас, и сервер разработки APN, похоже, уже зарегистрирован, поэтому я предполагаю, что по этой причине didRegisterForRemoteNotificationsWithDeviceToken не запускается снова.

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

Ответы [ 2 ]

7 голосов
/ 30 декабря 2011
  1. если вы вызываете registerForRemoteNotificationTypes: метод UIApplication при каждом запуске вашего приложения, приложение: didRegisterForRemoteNotificationsWithDeviceToken: делегат будет также вызываться каждый раз.При первой регистрации iOS спросит пользователя, хотят ли они получать уведомления, а iOS подключится к службе уведомлений Apple, чтобы зарегистрироваться и получить токен устройства.После этого, registerForRemoteNotificationTypes: вызов метода не будет ни спрашивать пользователя, ни соединять APN, iOS немедленно вызовет метод делегата с уже зарегистрированным токеном.

  2. если вы хотите, чтобы при запуске приложения снова запрашивался пользователь, вызовите unregisterForRemoteNotifications, затем снова вызовите registerForRemoteNotificationTypes: method.

некоторая подробная информациясвязанные: Управление токенами на стороне клиента приложения iOS с Apple Push Notification

0 голосов
/ 12 декабря 2011

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

...