如何设置每次重复显示不同内容的每日通知?

mat*_*ode 5 ios uilocalnotification swift

我正在开发一款可以在中午向您发送通知的应用程序。这个通知应该每天都不同。

我得到了通知本身的工作:

let notificationOptions: UNAuthorizationOptions = [.alert, .sound];
UNUserNotificationCenter.current().requestAuthorization(options: notificationOptions) { (granted, error) in
    if !granted {
        print("Something went wrong")
    } else {
        let content = UNMutableNotificationContent()
        content.body = getRandomDailyString()
        content.sound = UNNotificationSound.default()

        let date = DateComponents(hour: 12, minute: 15)
        let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

        let request = UNNotificationRequest(identifier: "Daily String", content: content, trigger: trigger)
        UNUserNotificationCenter.current().add(request) { (error) in
            if let error = error {
                print(error.localizedDescription)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在发生的情况是调用getRandomDailyString()函数,它返回一个字符串,并设置一个重复通知,该通知确实出现在指定时间,但始终具有相同的内容。

我该如何制作每天提供独特内容的通知?

mat*_*ode 3

好的,这是这个问题的解决方案。

不可能每天安排具有随机内容的重复通知。内容在安排通知时定义,以后无法更改。

不过,您可以提前安排最多 64 条通知。因此,您可以在接下来的 64 天内安排 64 个独特的通知,然后每当您打开应用程序时检查剩余的数量,并再次将通知安排填满至 64 个。

如果您在 64 天后没有打开应用程序,通知将停止发送:P