func scheduleNotification() {
let dateString = "2017-04-04 09:00:00"
let dateFormatter = DateFormatter()
var localTimeZoneName: String { return TimeZone.current.identifier }
var secondsFromGMT: Int { return TimeZone.current.secondsFromGMT() }
dateFormatter.timeZone = TimeZone(secondsFromGMT: secondsFromGMT)
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateObj:Date = dateFormatter.date(from: dateString)!
let triggerDaily = Calendar.current.dateComponents([.hour,.minute,.second,], from: dateObj)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDaily, repeats: true)
let content = UNMutableNotificationContent()
content.title = "mIdeas"
content.body = getRandomMessage()
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "myCategory"
let request = UNNotificationRequest(identifier: "textNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().delegate = self
//this commented code is to remove the pre-seted notifications so if you need multiple times don't use this line of code
//UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("Uh oh! i had an error: \(error)")
}
}
}
4 回答
重复你不能做到这一点 . 在接下来的30天内制作一堆不同的制作通知 - 每天一个 . 当用户打开应用程序时,然后为下一个30重新创建它们 .
您可以将重复间隔设置为 day 并传递不同时间的本地通知数组 .
这可能会对你有所帮助:how to create multiple local notifications
我做了这样的应用试试这个 .
调用此函数来设置通知,您可以修改此函数并添加参数以传递时间
是的,您可以使用重复选项在特定时间和时间推送通知 .
请遵循以下代码:
如果您在通知中寻找可操作的项目 . 你应该把它添加到中心的某个地方 .
Make sure you set a different identifier for your notification request!