gpt4 book ai didi

ios - 带有开始和结束时间的每日本地通知

转载 作者:行者123 更新时间:2023-11-29 05:46:03 28 4
gpt4 key购买 nike

我想要每天重复一次通知,但要给出开始时间、结束时间和频率(固定)。

假设开始时间是上午 10 点,结束时间是下午 6 点,频率是每 3 小时一次,那么它应该分别在上午 10 点、下午 1 点、下午 4 点触发通知。

注意:- 该应用程序还有 3 个其他本地通知(具有不同的标题和正文),因此需要区分通知,因为用户可以随时停止任何这些通知.

尝试使用DLLocalNotification,但它没有解决我的问题。

DLNotificationScheduler().repeatsFromToDate (identifier: String, alertTitle: String, alertBody: String, fromDate: Date, toDate: Date, interval: Double, repeats: RepeatingInterval, category: String = " ", sound: String = " ")

任何帮助将不胜感激

最佳答案

要重复发布本地通知,您可以使用以下代码:

let content = UNMutableNotificationContent()
content.title = "Pizza Time!!"
content.body = "Monday is Pizza Day"
content.categoryIdentifier = "pizza.reminder.category"

//Date component trigger
var dateComponents = DateComponents()
//example for Gregorian calendar. Every Monday at 11:30AM
dateComponents.hour = 11
dateComponents.minute = 30
dateComponents.weekday = 2
// for testing, notification at the top of the minute.
dateComponents.second = 0

let trigger = UNCalendarNotificationTrigger(
dateMatching: dateComponents,
repeats: true)


let request = UNNotificationRequest(identifier: "pizza.reminder", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if let error = error {
print("error in pizza reminder: \(error.localizedDescription)")
}
}

您可以通过为每种类型定义不同的标识符来添加多种类型的通知。

要停止本地通知,

UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: ["pizza.reminder"])

要获取尚未发布的本地通知的通知,您可以使用以下代码

UNUserNotificationCenter.current().getPendingNotificationRequests {
(requests) in
displayString += "count:\(requests.count)\t"
for request in requests{
displayString += request.identifier + "\t"
}
print(displayString)
}

这些东西足以添加一些逻辑并满足您的要求。欲了解更多信息,您可以关注:

https://makeapppie.com/2017/01/31/how-to-repeat-local-notifications/

关于ios - 带有开始和结束时间的每日本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com