как сделать так, чтобы приложение для iPhone несколько раз запрашивало регистрацию устройства для push-уведомлений - PullRequest
8 голосов
/ 13 июня 2011

Я использовал следующий код, чтобы зарегистрировать мое приложение для получения push-уведомлений, и я получил предупреждение, в котором мне предлагается зарегистрироваться для push-уведомлений, и я случайно нажал "Отмена". Теперь я хочу снова получить оповещение, чтобы запустить метод делегата для получения токена устройства. Но я больше не получаю это предупреждение, и каждый раз, открывая настройки, я обнаруживаю, что уведомление отключено для приложения. Я пытался удалить приложение с устройства, изменить версию приложения, удалить профиль тестирования, очистить цель, даже сбросив все настройки iPhone, но все еще не смог решить эту проблему. Я был бы очень признателен за любую помощь, спасибо

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     UIRemoteNotificationTypeBadge | 
     UIRemoteNotificationTypeAlert | 
     UIRemoteNotificationTypeSound];  

Ответы [ 7 ]

7 голосов
/ 17 октября 2012

рекомендуемый Apple способ сброса уведомления

Конечно, только во время разработки.

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

Удалите ваше приложение с устройства. Полностью выключите устройство и включите его снова. Перейдите в Настройки> Общие> Дата и время и установите дата впереди день или больше. Снова полностью выключите устройство и включите его снова.

Не забудьте полностью его выключить и снова включить.

3 голосов
/ 13 июня 2011

Theres опция уведомления в настройках.Проверьте свое приложение и включите уведомление оттуда.

Я где-то узнал, что в iOs 4 есть эта ошибка, которая не будет повторяться, даже если вы удалите и переустановите приложение.

Попробуйте Настройки-> Уведомления-> Ваше приложение-> Включите его.

Надеюсь, это поможет.Спасибо

2 голосов
/ 06 марта 2013

Похоже, что на вопрос никогда не отвечали полностью, поэтому вот оно:

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

+ (BOOL) arePushNotificationsEnabled 
{
    return [[UIApplication sharedApplication] enabledRemoteNotificationTypes] != UIRemoteNotificationTypeNone;
}
1 голос
/ 19 июня 2014

Сброс оповещения о разрешениях push-уведомлений на iOS

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

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

  1. Удалите приложение с устройства.
  2. Полностью выключите устройство и включите его снова.
  3. Выберите «Настройки»> «Основные»> «Дата и время» и установите дату на день вперед или более.
  4. Снова полностью выключите устройство и снова включите его.

Для более подробной информации проверить это .

0 голосов
/ 17 июля 2012

Чтобы наше приложение задавало это снова и снова .. звоните

[[UIApplication sharedApplication] unregisterForRemoteNotifications];

первый. Затем позвоните

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 UIRemoteNotificationTypeBadge | 
 UIRemoteNotificationTypeAlert | 
 UIRemoteNotificationTypeSound]; 

Надеюсь, это поможет. Спасибо.

0 голосов
/ 25 июня 2011

все, что вам нужно сделать, это удалить один из методов уведомления из вашего регистрационного кода, и он снова попросит вас разрешить уведомления (например, удалить UIRemoteNotificationTypeSound)

0 голосов
/ 13 июня 2011

Убедитесь, что вы вызываете этот метод в didFinishLaunchingWithOptions вашего AppDelegate

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 UIRemoteNotificationTypeBadge | 
 UIRemoteNotificationTypeAlert | 
 UIRemoteNotificationTypeSound]; 

, чтобы каждый раз, когда приложение будет запрашивать уведомления

, также проверяйте настройки вашего устройства, чтобы проверить, включены ли уведомления илинет?

...