Как получить уведомление, когда пользователь изменяет настройки уведомлений pu sh в приложении «Настройки»? - PullRequest
0 голосов
/ 12 февраля 2020

Рассмотрим следующий сценарий:

Приложение установлено
Приложение запускается
Pu sh Уведомление ➝ Запрос
Pu sh Уведомление ➝ Не разрешать
Приложение закрыто или в фоновом режиме
Настройки ➝ Пользователь включен Pu sh Уведомление

Как получить уведомление об этом изменении без перемещения приложения на передний план, чтобы маркер устройства можно было отправить на наш бэкэнд-сервер для получения уведомлений, даже если пользователь не открывает приложение?

Я знаю, что вы можете проверить, разрешены ли уведомления с помощью UNUserNotifications framework, например:

static func checkNotificationStatus() {
    UNUserNotificationCenter.current().getNotificationSettings { settings in

        switch settings.authorizationStatus {
        case .authorized: generatePushToken()
        case .provisional: generatePushToken()
        case .denied: break
        case .notDetermined:
            UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
                checkNotificationStatus()
            }
        @unknown default: break
        }
    }
}

Но это происходит только после того, как ваше приложение перемещается на передний план или оно запускается снова.

Что делать, если ничего из этого не происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...