Как заменить отображаемые уведомления в iOS 10 с помощью инфраструктуры UserNotifications

Я создаю приложение для напоминаний, которое отправляет локальные уведомления, которые повторяются на основе пользовательских настроек пользователя. Например, я могу отправлять уведомления через день в 8 вечера. Каждый раз, когда я отправляю одно из этих уведомлений, я хочу заменить любое предыдущее уведомление, которое может уже отображаться в центре уведомлений пользователя.

Новая платформа UserNotifications в iOS приближает меня к возможности сделать это. Насколько я могу судить, уведомления можно заменить двумя способами:

  1. Использовать UNCalendarNotificationTrigger с repeats: true, Повторные триггеры заменяют прошлые.
  2. Создать новый UNNotificationRequest с тем же identifier, Всякий раз, когда запрос отправлен с тем же identifier, он заменяет все остальные экземпляры.

Ни одно из этих решений не работает для меня:

  1. Я не могу использовать повторяющиеся уведомления, потому что UNCalendarNotificationTrigger использования DateComponents для повторяющегося графика, который просто не достаточно гранулирован. Мой пример выше "каждый второй день в 8 вечера" не может быть описан просто DateComponents,
  2. Поскольку мне нужно запланировать несколько уведомлений одновременно, я должен указать уникальный identifiers, и как таковые, они не заменяют друг друга при отображении.

Я надеялся, что расширение службы спасет меня здесь. Если бы я мог выполнить код при получении уведомления, я мог бы программно удалить старые уведомления при запуске новых. К сожалению, кажется, что расширения службы работают только для удаленных уведомлений. Даже если бы я мог использовать удаленные уведомления (что само по себе является целой червей), это решение отчасти отклоняет правила, разрешенные для расширений служб.

У кого-нибудь есть идеи, как решить эту проблему, или мне суждено спамить в центрах уведомлений моих пользователей?

0 ответов

Другие вопросы по тегам