#ios #iphone #apple-push-notifications
#iOS #iPhone #apple-push-уведомления
Вопрос:
Я хочу уважать намерения моих пользователей и не звонить [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(...)]
, если они отключили удаленные уведомления для моего приложения.
При вызове UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]
я получаю информацию о том, какие типы уведомлений включены для моего приложения. Однако Центр уведомлений для этого приложения можно отключить, и я по-прежнему получаю ранее включенный тип уведомления с помощью этого метода, пока не выберу «Нет».
Таким образом, мое приложение считает, что уведомления включены, даже если это не так.
Есть ли способ программно узнать статус центра уведомлений для моего приложения? (ВКЛЮЧЕНО / выключено).
Комментарии:
1. Если уведомления отключены, и вы регистрируетесь, получаете ли вы
-application:didRegisterForRemoteNotificationsWithDeviceToken:
или-application:didFailToRegisterForRemoteNotificationsWithError:
? Я не удивлюсь, если будет вызван последний.2. Для меня выполняется только первый метод, когда настройка центра уведомлений включена или выключена. Но вопрос в том, как определить, на что оно настроено, с помощью этого метода.
3. Вызов
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(...)]
ничего не даст, что пользователь сможет увидеть, если уведомления для вашего приложения отключены в настройках, почему вы не хотите вызывать его каждый раз?4. Дело не в том, что я не хочу вызывать его каждый раз — я это делаю, — но я бы предпочел позвонить на свой сервер и отменить регистрацию устройства из уведомлений, как только я узнаю, что пользователь отключил центр уведомлений.
5. Похоже, Apple представила переключатель включения / выключения центра уведомлений, но забыла предоставить нам API для запроса к нему … очень неприятно.
Ответ №1:
Не путайте «в центре уведомлений» с «включены push-уведомления». Я могу удалить приложение из центра уведомлений, но оно по-прежнему будет получать push-уведомления в виде номеров значков, поэтому ваш старый метод должен работать нормально.
Комментарии:
1. Это полезно, но есть ли способ проверить, находится ли приложение в центре уведомлений прагматично?
2. Я не верю, что есть какой-либо способ определить, каковы настройки уведомлений пользователя для вашего приложения, помимо методов делегирования приложения для регистрации и сбоя регистрации для удаленных уведомлений.