问题描述
我的任务是设置用户收到通知的时间。因此,我知道此时间段(10.00–11.00),间隔(5分钟),并且可以计算通知的数量(周期/间隔= 12)。因此,该应用程序将12个请求添加到UNUserNotificationCenter。在这种情况下,一切正常。但是有一个问题:
一个应用只能包含有限数量的预定通知;系统会保留最早触发的64条通知(将自动重新安排的通知计为单个通知),其余部分则丢弃。 如果用户设置的时间较长(10小时),则计划的通知数= 120,并且它们不会触发。
关于64个通知限制,我该怎么办?
也许还有另一种在指定时间段内安排通知的方法?
我的代码:
let calendar = Calendar.current
let period = calendar.dateComponents([.minute],from: self.startTime,to: self.endTime)
var intPeriod: Int {
var intPeriod = period.minute!
if intPeriod < 0 {
intPeriod = 1440 + intPeriod
}
return intPeriod
}
let quantity = intPeriod / minutes
var increasingMinutes = 0
for _ in 0.. < quantity + 1 {
var increasingTrigger = calendar.date(byAdding: .minute,value: increasingMinutes,to: self.startTime)
let dc = calendar.dateComponents([.hour,.minute],from: increasingTrigger!)
let trigger = UNCalendarNotificationTrigger(dateMatching: dc,repeats: true)
let request = UNNotificationRequest(identifier: UUID().uuidString,content: content,trigger: trigger)
UNUserNotificationCenter.current().add(request) {
(error) in
print("Error \(String(describing: error))")
}
increasingMinutes += minutes
}
startTime,endTime-DatePicker中的可绑定vars
分钟-可与步进器绑定
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)