如何在特定时间点火后重复本地通知

时间:2018-05-08 03:16:24

标签: ios swift time uilocalnotification

我目前正在制作一个闹钟应用程序,目前我可能只是一个误解。我想在特定时间发布本地通知,并以一定的时间间隔重复。我已经得到了一些想法,这个(https://makeapppie.com/2017/01/31/how-to-repeat-local-notifications/)程序接近我想要的程序,但我希望它在某个时间关闭,然后在一个时间间隔重复。

用户输入信息后,程序将吐出:

timeIntervalSeconds,用户想要通知的时间间隔(以秒为单位)

timeStart,通知开始时

timeEnd,如果用户没有停止通知,则通知将结束

任何建议都将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

由于Apple仅提供有限的自动重复通知间隔列表,您可以尝试下一步使用自定义间隔: 当通知被解雇时,您应该计算日期&下次通知的时间,只需按预定时间安排

答案 1 :(得分:0)

要在代码下方启动特定时间的通知。

let gregorian = Calendar(identifier: .gregorian)
                    let now = Date()
                    var components = gregorian.dateComponents([.year, .month, .day, .hour, .minute, .second], from: now)

                    // Change the time to 10:00:00 in your locale
                    components.hour = 10
                    components.minute = 0
                    components.second = 0

                    let date = gregorian.date(from: components)!

                    let triggerDaily = Calendar.current.dateComponents([.hour,.minute,.second,], from: date)
                    let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDaily, repeats: true)

                    let request = UNNotificationRequest(identifier: CommonViewController.Identifier, content: content, trigger: trigger)

要在特定时间间隔内重复通知,请在触发器中使用以下代码。

 let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 120, repeats: true)  // it repeats after every 2 minutes