How to repeat local notification once fired at a particular time

删除回忆录丶 提交于 2019-12-02 20:49:20

问题


I am currently making an alarm clock app and I am currently stuck at possibly just a misunderstanding. I want to launch a local notification at a specific time and repeat at a time interval. I have been getting a couple ideas and this (https://makeapppie.com/2017/01/31/how-to-repeat-local-notifications/) program is close to what I want it to be but I want it to go off at a certain time and then repeat at a single interval.

After user inputs information, the program will spit out:

timeIntervalSeconds, the interval that user wants the notifications in (in seconds)

timeStart, when the notifications will start

timeEnd, when the notifications will end if the user doesn't stop them

Any suggestions would be greatly appreciated.

Thank you!


回答1:


To launch notification on specific time use below code.

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)

And to repeat notifications on specific time interval use below code in trigger.

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



回答2:


Since Apple provide only limited list of intervals for auto repeat of notifications you can try to do next to use custom intervals: When a notification got fired you should calculate date & time for next notification and just schedule it on desired time.



来源:https://stackoverflow.com/questions/50225281/how-to-repeat-local-notification-once-fired-at-a-particular-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!