Во время процесса регистрации моего приложения у меня есть страница, спрашивающая пользователя, хотят ли они разрешить уведомления об уведомлениях (через UrbanAirship
).
Когда пользователь нажимает "Don't Allow"
или "Allow"
в последующемСгенерировано SDK UIAlert
Я хотел бы выполнить некоторые действия.В этом случае переход к следующей странице входящего потока, когда пользователь нажимает одну из двух кнопок оповещения.Кроме того, в случае "Allow"
обновите переменную в локальном хранилище, чтобы указать, что пользователь ранее дал разрешение на push-уведомления.
В идеале я хотел бы иметь возможность реализовать закрытие / обратный вызов для каждогоиз этих нажатий кнопок, но я не смог выяснить, как это сделать из UrbanAirship
документов.
В настоящее время у меня есть следующее:
@IBAction func permissionsButtonPressed(_ sender: Any) {
UAirship.push().userPushNotificationsEnabled = true
UAirship.push().defaultPresentationOptions = [.alert, .badge, .sound]
UAirship.push().resetBadge()
UAirship.push().isAutobadgeEnabled = true
//Update a variable in local storage
// ...
performSegue(withIdentifier: "exampleIdentifier", sender: self)
}
Но это имеетпроблема создания перехода страницы и , а затем представления уведомления об уведомлении в верхней части следующей страницы во входящем потоке.
Самая близкая вещь к решению, которое я нашел в UrbanAirship
docs + forums - это этот вопрос форума от 2017 года , но это только кажется возможным решением "закрытия" для случая нажатия кнопки "allow"
(через didRegisterForRemoteNotifications
), тогда как я все еще хочубыть в состоянии продвинуть моих пользователей через вход, даже если они отказывают в разрешениях уведомлений.
В идеале, я хотел бы иметь возможность реализовать замыкания завершения, подобныечто возможно со стандартным UIAlertController
, например:
func setupPermissionsAlert() {
let alert = UIAlertController(title: "This App Would Like to Send You Notifications", message: "An Interesting and Informative Message", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "Don't Allow", style: UIAlertAction.Style.default, handler: { [unowned self] action in
//Some action
self.notAllowedCompletion()
}))
alert.addAction(UIAlertAction(title: "Allow", style: UIAlertAction.Style.default, handler: { [unowned self] action in
//Another action
self.allowedCompletion()
}))
//N.B. topMostViewController() is a custom method to locate the topMostViewController presented
UIApplication.shared.topMostViewController()?.present(alert, animated: true, completion: nil)
}
Мой вопрос, поэтому, возможно ли это с UrbanAirship
для ОБА разрешение выдано и отклонены результаты из SDK представлены предупреждения?Если да, то как мне это сделать?