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

时间:2019-05-15 06:32:29

标签: ios swift notifications uilocalnotification localnotification

我希望notification每天重复一次,但要提供开始时间,结束时间和频率(固定)。

说,开始时间是10am,结束时间是6pm,频率是每3小时,那么它应该分别在10 am、1pm和4pm触发通知。

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

尝试过DLLocalNotification,但不能解决我的问题。

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

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

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

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/