微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS - 用不同的文本安排重复的通知

如何解决iOS - 用不同的文本安排重复的通知

我有一个应用,用户每天需要在其中完成一项任务。如果用户没有完成任务,他/她会在第二天早上 8 点收到提醒,并带有提示完成任务的短语。

我们想每天早上发送一个短语,但我们不希望它每天都是同一个短语。

这就是我们现在所拥有的:

static func scheduleDailyUnwatchednotification() {
    
    let notificationMessages = ["Phrase one","Phrase two","Phrase 3","Phrase 4","Phrase 5"]
    let totalMessages = notificationMessages.count
    let randomIndex = Int.random(in: 0..<totalMessages)
    
    let center = UNUserNotificationCenter.current()
    center.removePendingNotificationRequests(withIdentifiers: ["dailyReminder"])
    
    let content = UNMutableNotificationContent()
    content.title = "Reminder"
    content.body = notificationMessages[randomIndex]
    content.sound = .default
    
    var dateComponents = DateComponents()
    dateComponents.hour = 8
    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents,repeats: true)
    
    let request = UNNotificationRequest(identifier: "dailyReminder",content: content,trigger: trigger)
    
    center.add(request)
}

问题在于,即使选择了随机短语,通知也会始终使用相同的随机短语重复。

我们如何让它用不同的短语重复?

解决方法

您需要手动安排每个不同的短语通知。但是,如果您每天发送一个短语并且您已经说了 50 个短语,您可以安排每个短语每 50 天重复一次。然后,无论何时用户打开应用程序,您都可以在发送通知的日期前后交换 - 所以短语的排序并不总是相同的。这不是最理想的,但确实允许具有不同标题的重复通知。

或者,如果您希望能够在没有新应用发布的情况下更改通知标题/拥有更多控制权,您可以使用推送通知。通过这种方式,您可以设置后端来发送消息,但从服务器的角度来看,它确实有更多的开销。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。