Как повторить локальное уведомление после того, как выстрелил в определенное время - PullRequest
0 голосов
/ 08 мая 2018

В настоящее время я делаю приложение для будильника, и сейчас я застрял, возможно, просто в недоразумении. Я хочу запустить локальное уведомление в определенное время и повторить через определенный интервал времени. Я получил пару идей, и эта (https://makeapppie.com/2017/01/31/how-to-repeat-local-notifications/) программа близка к тому, что я хочу, но я хочу, чтобы она отключалась в определенное время, а затем повторялась через один интервал.

После того, как пользователь введет информацию, программа выплюнет:

timeIntervalSeconds, интервал, в который пользователь хочет получать уведомления (в секундах)

timeStart, когда начнутся уведомления

timeEnd, когда уведомления заканчиваются, если пользователь их не останавливает

Любые предложения будут с благодарностью.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Для запуска уведомления о конкретном времени используйте код ниже.

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
0 голосов
/ 08 мая 2018

Поскольку Apple предоставляет только ограниченный список интервалов для автоматического повтора уведомлений, вы можете попытаться использовать следующие интервалы: При получении уведомления вы должны рассчитать дату и время для следующего уведомления и просто запланировать его на желаемое время .

...