例子:每周日早上8點做一次推送提醒,且文字隨機(jī)。
已知單獨設(shè)置一個重復(fù)的推送是這樣的,但是文案是每次都一樣的。
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,那么就可以實現(xiàn)一個月里的每個周日都不一樣的文案了。其他的例如每天、每月1日等同理,使用weekday、month等搭配出不同的效果。
// 每周日早上手機(jī)本地時間8點
let doEverySunday = {
for index in 1..<6 {
let identifier = kReminderEverySundayIdentifierPrefix.appending(String(index))
let content = UNMutableNotificationContent()
content.body = String(format: "每周日早上8點,隨機(jī)%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)
}
}