iOS本地推送的随机文案

例子:每周日早上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)
                }
            }

但是要注意identifier不可重复,否则会被新的request覆盖。

你可能感兴趣的:(iOS本地推送的随机文案)