基本上,我需要一个星期一运行通知的应用。我所拥有的是一个在每个星期一运行 通知的应用程序。有没有一种方法可以设置它,以便在收到第一个通知时,该应用程序将开始两周的时间间隔,在该时间间隔内它将再次运行该通知,并使其重复执行?例如,如果我有一个名为“ week”的变量,并且每隔一周在“ 1”和“ 2”之间进行交替,该如何将其标记为通知的触发器?
func notification(hour: Int, minute: Int, weekday: Int, text: String){
let content = UNMutableNotificationContent()
content.title = "Example"
content.body = text
content.sound = UNNotificationSound.default()
let trigger = UNCalendarNotificationTrigger(dateMatching: DateComponents(hour: hour, minute: minute, weekday: weekday), repeats: true)
let request = UNNotificationRequest(identifier: text, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
notification(hour: 12, minute: 0, weekday: 2, text: "Test")
}
答案 0 :(得分:0)
对于重复的通知,您不能这样做。 唯一的方法是使用非重复的通知并在给定的时间(在您的情况下为星期一)预先设置它们-例如,创建一个for循环,将在下一个10个星期一设置单个通知-您必须手动计算触发所有这些对象的时间。
限制是您不能使它们变得不确定-但是,如果用户不对这10条通知做出反应-至少从我的经验来看,以后使用它们的可能性很小。
最好的方法也是在用户每次关闭应用程序时设置这些通知-例如,如果我们在第5个星期一打开该应用程序,则应清理所有通知并再次设置下一组10个通知。