例子:每周日早上8点做一次推送提醒,且文字随机。
已知单独设置一个重复的推送是这样的,但是文案是每次都一样的。
let identifier = kReminderEverySundayIdentifierPrefix
let content = UNMutableNotificationContent()
content.body = "每周日早上8点"
var compontent = DateComponents()
compontent.weekday = 1
compontent.hour = 8
let trigger = UNCalendarNotificationTrigger(dateMatching: compontent, repeats: true)
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)
那么我们在DateComponents再添加一个条件weekOfMonth,取1~5,那么就可以实现一个月里的每个周日都不一样的文案了。其他的例如每天、每月1日等同理,使用weekday、month等搭配出不同的效果。
// 每周日早上手机本地时间8点
let doEverySunday = {
for index in 1..<6 {
let identifier = kReminderEverySundayIdentifierPrefix.appending(String(index))
let content = UNMutableNotificationContent()
content.body = String(format: "每周日早上8点,随机%d", arguments:[index])
var compontent = DateComponents()
compontent.weekOfMonth = index
compontent.weekday = 1
compontent.hour = 8
let trigger = UNCalendarNotificationTrigger(dateMatching: compontent, repeats: true)
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)
}
}
网友评论