Повторения в UserNotifications

swift

#21

Так и не получилось запустить расширение. Deployment target я тоже проверил и выставил одинаковыми. Все же, мне кажется, что запускается оно только для PUSH уведомлений.


#22

Тогда, к сожалению, других идей у меня пока нету.


#23

Должен помочь этот метод в appdelegate:

    func getDeliveredNotifications(completionHandler: @escaping ([UNNotification]) -> Void) {
    
}

https://developer.apple.com/documentation/usernotifications/unusernotificationcenter/1649520-getdeliverednotifications


#24

Спасибо за ответ, но, думаю, не поможет. Дело в том, что пользователь может вообще не открывать приложение. Соответственно, appdelegate не будет вызван.


#25

Попробуйте спросить на SO, там больше аудитория


#26

В описании у эпл сказано, что блок срабатывает в фоном режиме, если получает непустой массив уведомлений, доставленных и ещё находящихся в центре уведомлений:

«completionHandler
The block to execute with the results. This block may be executed on a background thread. The block has no return value and takes the following parameter:
notifications
An array of UNNotification objects representing the local and remote notifications of your app that have been delivered and are still visible in Notification Center. If none of your app’s notifications are visible in Notification Center, the array is empty.»


#27

Немного не так. Блок может быть выполнен в фоновом режиме, но сам он не срабатывает. Этот метод нужно вызывать откуда-то.


#28

Может вам надо смотреть в сторону Local Notification?

Вот как раз Иван рассказывает: https://www.youtube.com/watch?v=Dvhdnt12rZA


#29

Я именно про локальные спрашиваю. Урок посмотрел.


#30

Если вдруг найдётся решение, то сюда напишите - тоже очень интересно.


#31

Попробуйте поискать что-то в стороне работы будильника.
Не знаю как на iOS он работает, но на Андроиде если его не выключить, а нажать к приеру на кнопки звука, то он автоматически сработает через 10 минут и так до тех пор, пока на экране его не выключишь.


#32

Что-то подобное я и хочу сделать. Пока не совсем понимаю как))


#33

Я и говорю, поищите как устроен будильник и возможно ли сделать что-то подобное.
У него же явно какой-то сервис работает всегда в бэкграунде.


#34

Как вариант - можно посмотреть в сторону фонового запуска приложения. В фоновом запуске проверять имеющиеся доставленные уведомления в центре уведомлений - значит, пользователь их не просмотрел. Принудительно заменять их новыми на новую дату, текущие удалять. Попробую реализовать. Правда, пишут, что этот фоновый запуск определяется операционной системой и она сама определяет периодичность этого запуска. Возможна ситуация, когда запрашиваемый интервал запуска будет один, а система определит его другим значением. Ссылка: https://www.hackingwithswift.com/example-code/system/how-to-run-code-when-your-app-is-terminated