Я пытаюсь запланировать локальное уведомление для applicationWillTerminate (_:) . Насколько я понимаю, не гарантируется, что метод вызывается в случае, если приложение убито в фоновом режиме ; но я убиваю приложение, когда оно находится на переднем плане , и до сих пор не доставлено уведомление:
func applicationWillTerminate(_ application: UIApplication) {
let content = UNMutableNotificationContent()
content.title = "Local Notification test"
content.subtitle = "Scheduled on app termination"
content.body = "Local notification received succesfully!"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5.0, repeats: false)
let time = Date().timeIntervalSince1970
let request = UNNotificationRequest(identifier: "impalastudios_notification_appterminate_test_\(time)", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { error in
guard let error = error else {
print("Local notification scheduled successfully (5 seconds)")
return
}
print("\(error)")
}
}
Я обнаружил, что уведомление никогда не доставляется на iOS 12 или нижеи доставляется «иногда» (это действительно случайно) на iOS 13. Это может быть мой код, который имеет что-то не так, или это на стороне Apple, или, возможно, applicationWillTerminate (_:) просто не гарантируетсявызывается в любом случае (даже если приложение отключено на переднем плане)?