I am experiencing a strange error with iOS 10.2 with UNTimeIntervalNotificationTriggerand UNUserNotificationCenterDelegate. Basically the notification that I create is immediately received by the delegate, and then again on the correct internal. This only happens when the repeats property is set to true on the trigger.
Has anyone else seen this problem? Now I think that I need to check the trigger date in the delegate and compare it with the saved registered date - but I want to avoid it if possible.
Sample code for creating a notification
let content = UNMutableNotificationContent()
content.body = "My notification message"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: true)
let request = UNNotificationRequest(identifier: "MY_IDENTIFIER", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
UNUserNotificationCenterDelegate starts immediately after .add
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
// Code called here instantly when trigger repeats = true
// Code called again at proper interval as well (60 seconds)
}
If I change the trigger to repeat false, this does not happen
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: false)