it-swarm.com.ru

Как вернуть диалоговое окно "Разрешить push-уведомления" после того, как оно было закрыто один раз?

Я создаю приложение, которое сильно зависит от APN. При самом первом запуске моего приложения iOS спрашивает, разрешено ли этому приложению использовать APN (в результате вызова registerForRemoteNotificationTypes:). Однако после закрытия этот диалог никогда не появляется снова. Я должен вручную перейти к Settings->Notifications->MyApp, чтобы включить/отключить вещи там. Так есть ли способ избежать этой суеты и реально испытать то, что пользователь будет испытывать при самом первом запуске каждый раз, когда я запускаю свое приложение в режиме отладки?

42
Schultz9999

Вот как говорят Apple вы можете сделать это:

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

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

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

  1. Удалите приложение с устройства.

  2. Полностью выключите устройство и включите его снова.

  3. Перейдите в «Настройки»> «Основные»> «Дата и время» и установите дату на день вперед или более.

  4. Снова полностью выключите устройство и включите его снова.

78
Eran

Поскольку время - деньги, а другие методы требуют FOREVER - просто меняйте ID своего комплекта снова и снова во время отладки, каждый раз уведомления будут запрашиваться заново. Как только вы будете удовлетворены кодом, вернитесь к исходному идентификатору пакета.

23
Albert Renshaw

В iOS 9.x вы можете получать подсказку каждый раз, когда удаляете приложение и переустанавливаете его. Это верно как для производственных загрузок AppStore, так и для режима adhoc. Маркер устройства будет уникальным каждый раз.

@chengsam подтвердил, что это верно и в iOS 10 . @ WongWray подтвердил, что это верно и в iOS 11.

18
Gomfucius

На IOS10 теперь я могу снова получить приглашение, просто удалив приложение.

6
David Aanis

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

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

5
Woodstock

Моя проблема не была регистрация для UserNotificationSettings. Это позволило APN работать, но не фоновый звук или значок.

      [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
1
buckleyJohnson

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

1
mofojed