Как в iOS 13 переодически проверять базу и отправлять User Notification?

В приложении пользователь добавляет различные объекты, для которых выставляются две ключевые даты. На каждую из этих дат нужно отправлять уведомление, но секундная точность не важна.
Пытался завести BackgroundTask с периодической проверкой базы и отправкой уведомления. Но время вызова таска зависит, видимо, от циклов спутника Сатурна. Вызывается это все раз в месяц, если повезет.

Есть идея сделать через уведомления по календарю, но не уверен, будет ли это работать точно и какие будут побочные эффекты. При каждом редактировании объекта, нужно будет сносить уведомления и ставить новые.

Собственно, вопрос: как лучше сделать то, что я хочу, если я не хочу изобретать велосипед?
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode
После закрытия приложения, в методе applicationDidEnterBackground перебирайте по базе элементы, и выставляете локальные пуш-уведомления. Здесь же можно обновить бейдж, если он используется.
Помните про ограничение 64 пуша, если нужно больше - свой бекенд.

Будить через BackgroundTask ради уведомлений не стоит)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
NSA-bot
@NSA-bot
Для Бэкграуд моуд там определенный список возможных задач, и ваше вряд ли подходит, поэтому скорее всего просто приостанавливается.
Локальные уведомления по календарю, отлично подходят для этого и будут срабатывать точно, как вам нужно.
Ответ написан
Комментировать
briahas
@briahas
ObjC, Swift, Python
Все это делать на сервере.
Локально - наверное через календарь можно, но я такого не делал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы