Постановка 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 он срабатывает немедленно, также когда приложение находится на переднем плане.
Кто-нибудь видел это раньше? Кто-нибудь может мне помочь?