在不同重复间隔的Apple Watch上添加提醒通知
Add reminder notification on apple watch with different different repeat interval
我正在开发一个 Apple Watch 应用程序,我需要提醒用户通知来唤醒用户。
我可以用 make repeat: true
设置 UserNotification
并且它会每天提醒用户。
但我需要的是单日应用程序将根据用户选择通知,如下所示。
如果用户选择 3 分钟理想时间,则每 3 分钟用户会收到手表上的振动通知。
与 5 分钟、10 分钟和 15 分钟相同。
我正在为 UserNotification
使用以下代码。
func scheduleNotification(at date: Date) {
let calendar = Calendar(identifier: .gregorian)
let components = calendar.dateComponents(in: .current, from: date)
let newComponents = DateComponents(calendar: calendar, timeZone: .current, month: components.month, day: components.day, hour: components.hour, minute: components.minute)
let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true)
let content = UNMutableNotificationContent()
content.title = "Test Reminder"
content.body = "Show More detail in Body!"
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "myCategory"
if let path = Bundle.main.path(forResource: "logo", ofType: "png") {
let url = URL(fileURLWithPath: path)
do {
let attachment = try UNNotificationAttachment(identifier: "logo", url: url, options: nil)
content.attachments = [attachment]
} catch {
print("The attachment was not loaded.")
}
}
let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("Uh oh! We had an error: \(error)")
}
}
}
通过将下面的触发器与 repeats: true
一起使用
let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true)
隔天同一时间重复。
是否有任何方式或方法可以根据用户选择在指定间隔后设置重复?
任何帮助将不胜感激!
提前致谢。
尝试使用 UNTimeIntervalNotificationTrigger
而不是 UNCalendarNotificationTrigger
。
例如:
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 2*60, repeats: true)
这将创建一个每 2 分钟触发一次的触发器。 timeInterval
是触发每个通知之间的秒数。
我正在开发一个 Apple Watch 应用程序,我需要提醒用户通知来唤醒用户。
我可以用 make repeat: true
设置 UserNotification
并且它会每天提醒用户。
但我需要的是单日应用程序将根据用户选择通知,如下所示。
如果用户选择 3 分钟理想时间,则每 3 分钟用户会收到手表上的振动通知。
与 5 分钟、10 分钟和 15 分钟相同。
我正在为 UserNotification
使用以下代码。
func scheduleNotification(at date: Date) {
let calendar = Calendar(identifier: .gregorian)
let components = calendar.dateComponents(in: .current, from: date)
let newComponents = DateComponents(calendar: calendar, timeZone: .current, month: components.month, day: components.day, hour: components.hour, minute: components.minute)
let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true)
let content = UNMutableNotificationContent()
content.title = "Test Reminder"
content.body = "Show More detail in Body!"
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "myCategory"
if let path = Bundle.main.path(forResource: "logo", ofType: "png") {
let url = URL(fileURLWithPath: path)
do {
let attachment = try UNNotificationAttachment(identifier: "logo", url: url, options: nil)
content.attachments = [attachment]
} catch {
print("The attachment was not loaded.")
}
}
let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("Uh oh! We had an error: \(error)")
}
}
}
通过将下面的触发器与 repeats: true
let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true)
隔天同一时间重复。
是否有任何方式或方法可以根据用户选择在指定间隔后设置重复?
任何帮助将不胜感激!
提前致谢。
尝试使用 UNTimeIntervalNotificationTrigger
而不是 UNCalendarNotificationTrigger
。
例如:
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 2*60, repeats: true)
这将创建一个每 2 分钟触发一次的触发器。 timeInterval
是触发每个通知之间的秒数。