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覆盖。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。