每 n 天重复一次本地通知
Posted
技术标签:
【中文标题】每 n 天重复一次本地通知【英文标题】:Repeat local notification every n days 【发布时间】:2020-02-23 16:37:42 【问题描述】:我正在尝试创建将每 n 天发送一次本地通知的应用程序。
我有 DailyRepeat 结构,其中包含通知信息:
struct DailyRepeat: BaseRepeat
var title: String
var body: String
var date: Date
var day: Int
以及安排通知的方法:
func notifyDaily(at notification: DailyRepeat)
let content = generateContent(title: notification.title, body: notification.body)
let dateComponents = DateComponents(day: notification.day, hour: notification.date.time.hours, minute: notification.date.time.minutes)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
notificationCenter.add(request)
我的第一个想法是在第一个触发日期创建 UNCalendarNotificationTrigger,而不是处理通知并设置 UNTimeIntervalNotificationTrigger,但不幸的是,我找不到在没有用户交互的情况下处理通知接收的方法.
任何想法它应该如何工作?
【问题讨论】:
这能回答你的问题吗? Swift Repeat LocalNotification every 5 days @KirilS.,不幸的是没有:( 【参考方案1】:根据documentation,如果您希望通知重复,您需要为日期组件设置可重复的约束。
因此,要将通知设置为每天早上 8:30 运行,您只需设置小时和分钟并将其设置为重复。
var date = DateComponents()
date.hour = 8
date.minute = 30
let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)
我认为您不能使用重复来每 x 天重复一次,您可以设置一周中的特定天数或月份中的日期,但不能每 n 天。
您可以设置 x 天的 TimeInterval
并重复此操作,但要确定开始它的确切时间可能会很棘手。
【讨论】:
以上是关于每 n 天重复一次本地通知的主要内容,如果未能解决你的问题,请参考以下文章