Рассмотрим следующий сценарий:
Приложение установлено
Приложение запускается
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
}
}
}
Но это происходит только после того, как ваше приложение перемещается на передний план или оно запускается снова.
Что делать, если ничего из этого не происходит?