我正在编写一个间隔计时器,用户可以在其中选择> = 60秒的间隔来接收重复的通知。这样可以正常工作,并且通知会按预期重复,并创建如下:
func scheduleNotification(){
let content = UNMutableNotificationContent()
content.title = "INTERVAL TIMER"
content.sound = UNNotificationSound.default
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: Double(userSeconds), repeats: true)
let request = UNNotificationRequest(identifier: "test", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
}
}
用户可以停止计时器以设置不同的间隔,该间隔将调用此函数,然后使用新的userSeconds(间隔)值再次调用上一个函数:
func cancelNotification(){
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
}
但是,取消第一个间隔后设置的每个间隔的通知不会提醒用户-没有声音/振动等。
例如,我设置了60秒的间隔,并每60秒收到一则通知,取消该通知并将其更改为120秒。现在仅每120秒发出一次通知,但是没有警报。它会出现在锁定屏幕上,但不会唤醒手机或发出声音。
我已经测试过将标识符设置为userSeconds的String值,并且能够成功取消和更改间隔,除非我设置了在该会话之前使用的间隔(因此在此之前使用了该标识符),在没有警报的情况下接收通知的问题仍然存在。
有人知道原因吗?关闭应用程序并重新打开它可以解决使用相同标识符的问题