UNUserNotification在一段时间内发送本地通知

问题描述

我的任务是设置用户收到通知的时间。因此,我知道此时间段(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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...