在我的应用中,我实现了每天早上9点接收从数组中随机引用的通知的可能性。但是有时候,应用会在几天内向用户发送相同的报价。我使用myQuotes.randomElement()!用于接收随机报价。如何解决此问题? 这是代码:
// MARK: Local notification
let center = UNUserNotificationCenter.current()
let options: UNAuthorizationOptions = [.alert, .sound];
center.requestAuthorization(options: options) {
(granted, error) in
if !granted {
print("Something went wrong")
}
}
center.getNotificationSettings { (settings) in
if settings.authorizationStatus != .authorized {
// Notifications not allowed
}
}
let content = UNMutableNotificationContent()
content.title = "\(myTitle.randomElement()!)"
content.body = "\(myQuotes.randomElement()!)"
content.categoryIdentifier = "myQuotesNotification"
content.sound = UNNotificationSound.default
var date = DateComponents()
date.hour = 9
date.minute = 00
let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)
let request = UNNotificationRequest(identifier: "myQuotesNotification", content: content, trigger: trigger)
center.add(request)
答案 0 :(得分:0)
您要安排相同的数组元素。了解更多通知限制。
您的代码非常适合日常提醒。记得。此代码一次被调用,这是用户安排通知的时间。例如。如果我们安排每日文字通知
我们的数组:[“burger”,”hamburger”,”pizza”]
请注意,我们每天都会尝试向用户通知数组中的随机单词,因此,Well Notifications无法正常工作。每次打开应用程序时,如果随机hamburger
,我们的代码就会命中并安排时间表
被选中后,不可能进行更改而无需先打开应用并让调度程序正常工作,然后使用另一个随机元素重新调度通知
对于您的情况,我建议您进行远程通知,或者在未来几天使用唯一标识符安排通知。
我希望这很清楚。