Постановка UNNotificationRequest с UNTimeIntervalNotificationTrigger, когда приложение находится на переднем плане

У меня проблема с активацией повтора, когда приложение находится на переднем плане. Пожалуйста, смотрите код ниже:

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void) {
    let identifier = response.actionIdentifier
    let request = response.notification.request
    if identifier.hasSuffix("action") {
        if identifier == "snooze5.action"{
            snoozeTime = 5
        }
        else {
            snoozeTime = 15
        }
        addNotification(request: request)
    }


   completionHandler()
}

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    completionHandler( [.alert, .badge, .sound])
}


    func addNotification(request: UNNotificationRequest){
    let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: snoozeTime!, repeats: false)
    let newRequest = UNNotificationRequest(identifier: request.identifier, content: request.content, trigger: trigger)
    UNUserNotificationCenter.current().add(newRequest, withCompletionHandler: {
        (errorObject) in
        if let error = errorObject{
            print("Error \(error.localizedDescription) in notification \(request.identifier)")
        }
    })
}

Этот код отлично работает, когда приложение находится в фоновом режиме, и я нажимаю кнопку повтора. Когда приложение находится на переднем плане, и я нажимаю кнопку повтора, уведомление просто не запускается снова. Я даже не достигаю точки останова в "userNotificationCenter(_ center: UNUserNotificationCenter, willPresent Notification...)". При создании newRequest с trigger = nil он срабатывает немедленно, также когда приложение находится на переднем плане.

Кто-нибудь видел это раньше? Кто-нибудь может мне помочь?

0 ответов

Другие вопросы по тегам