Как установить пользовательский интервал повторения UNNotificationRequest? - PullRequest
1 голос
/ 02 июля 2019

Я внедряю пользовательское напоминание о повторении, такое как приложение Reminder по умолчанию.Здесь я не расскажу, как установить интервал повторения, например, «Триггер» на каждый N-й день / неделю / месяц / год, т. Е. Уведомление о триггере на каждый 4-й день / неделю / месяц / год.

Вот мойреализация для интервала = 1

    if type == .daily{                        
        dateComponents = Calendar.current.dateComponents([.hour, .minute], from: Date())            
    }else if type == .weekly{
        dateComponents = Calendar.current.dateComponents([.hour, .minute,.weekday], from: Date())
    }else if type == .monthly{
        dateComponents = Calendar.current.dateComponents([.day,.hour, .minute], from: Date())

    }else if type == .yearly{
        dateComponents = Calendar.current.dateComponents([.hour, .minute,.day,.month], from: Date())
    }

1 Ответ

0 голосов
/ 02 июля 2019

К сожалению, UNNotificationRequest не имеет интерфейса для установки пользовательских интервалов повторения для локальных уведомлений.

Похоже, что для вашего вопроса не существует стабильного рабочего решения, но в качестве обходного пути вы можете попытаться реализовать свою собственную логику перепланирования, запрашивая несколько локальных уведомлений (используя UNTimeIntervalNotificationTrigger) на основе вашего интервала повторения, а затем перепланировать новые уведомления каждый раз, когда приложение запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...