Локальное уведомление на applicationWillTerminate (_ :) не доставляется - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь запланировать локальное уведомление для 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 (_:) просто не гарантируетсявызывается в любом случае (даже если приложение отключено на переднем плане)?

...