Не отображаются локальные уведомления iOS 10
Я работал над настройкой локальных уведомлений для своего приложения в iOS 10, но при тестировании в симуляторе я обнаружил, что уведомления будут успешно запланированы, но фактически никогда не появятся, когда придет время, на которое они были запланированы. Вот код, который я использовал:
let UNcenter = UNUserNotificationCenter.current()
UNcenter.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
// Enable or disable features based on authorization
if granted == true {
self.testNotification()
}
}
Затем он запускает этот код (предположим, что дата / время в будущем):
func testNotification () {
let date = NSDateComponents()
date.hour = 16
date.minute = 06
date.second = 00
date.day = 26
date.month = 1
date.year = 2017
let trigger = UNCalendarNotificationTrigger(dateMatching: date as DateComponents, repeats: false)
let content = UNMutableNotificationContent()
content.title = "TestTitle"
content.body = "TestBody"
content.subtitle = "TestSubtitle"
let request = UNNotificationRequest(identifier: "TestID", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("error: \(error)")
} else {
print("Scheduled Notification")
}
}
}
Из этого кода он всегда будет печатать "Запланированное уведомление", но когда уведомление должно быть запущено, оно никогда не срабатывает. Я не смог найти никакого решения для этого.
1 ответ
Вот несколько шагов.
Убедитесь, что у вас есть разрешение. Если нет, используйте UNUserNotificationCenter.current(). RequestAuthorization, чтобы получить это. Или следуйте ответу, если хотите, чтобы запрос появлялся несколько раз.
Если вы хотите показать передний план уведомления, вам нужно назначить UNUserNotificationCenterDelegate где-то.
Этот ответ может помочь.