Нет делегата. Вам необходимо периодически запрашивать свойство UIApplication
enabledRemoteNotificationTypes
, например, в applicationDidBecomeActive:
.
Для получения подробной информации проверьте эти ответы:
Определить на iPhone, включил ли пользователь push-уведомления
Просмотр на экране блокировки и enabledRemoteNotificationTypes - iOS5
Изменить:
Если вам нужно сбросить настройки push-уведомлений и предупреждений о разрешениях, взгляните на Техническое примечание Apple TN2265. В разделе «Сброс уведомления о разрешениях push-уведомлений в iOS» объясняется, как сбросить настройку в iOS. Однако многие разработчики жалуются, что процедура не работает. Не уверен, что эта ссылка будет работать, вам потребуется доступ к форуму Apple , но это одна из тем, посвященных именно этой проблеме.
Мне самому было интересно, может быть, Apple удалила диалоговое окно разрешений в iOS 5.1. Иначе зачем им требовать, чтобы приложение показывало предупреждение? В соответствии с рекомендациями по обзору AppStore до июня 2016 г.:
5.3 Приложения, которые отправляют push-уведомления без предварительного согласия пользователя, будут отклонены.
Например, Path (приложение) просит пользователя выбрать push-уведомление в середине процесса регистрации, а не при первом запуске приложения.
В любом случае не уверен, какова должна быть цель приглашения, поскольку приложение не может запросить состояние настройки уведомления. В частности, приложение может проверять, какие типы уведомлений (с помощью enabledRemoteNotificationTypes
) включены, но НЕ, если push-уведомления для конкретного приложения включены или отключены (переключатель ВКЛ / ВЫКЛ Центра уведомлений вверху). По крайней мере, так обстоит дело в iOS 5.1. Даже если пользователь отключит уведомления для этого приложения, приложение все равно может зарегистрироваться для получения push-уведомлений (используя registerForRemoteNotificationTypes
) и БУДЕТ получать токен APNS.
person
Greg
schedule
17.04.2012