Я работаю над проектом приложения, использующим Flutter.
И у меня возникла проблема с удалением доставленных уведомлений на iOS.
Мы используем Firebase Cloud Messaging (FCM) для доставки удаленных уведомлений на iOS и в в некоторых случаях доставленное уведомление должно быть удалено из центра уведомлений.
Я реализовал эту функцию с помощью тихого нажатия ('content-available': 1). Таким образом, push-уведомления, отправленные FCM, не видны, мы показываем их с помощью службы UNUserNotificationCenter (для этого мы используем пакет флаттера — Flutter Local Notifications), и когда нам нужно удалить доставленное уведомление, мы получаем еще один тихий push-уведомление с идентификатором уведомления для его удаления и удаления через та же служба уведомлений.
И все работало нормально в переднем и фоновом состоянии, но не в завершенном состоянии. В прекращенном состоянии мы превышаем квоту на использование автоматических push-уведомлений:
Количество фоновых уведомлений, разрешенных системой, зависит от текущих условий, но не не пытайтесь отправлять больше двух или трех в час. (из документации)
В этом случае мы все равно получаем push-уведомления на устройство из FCM, но iOS блокирует пробуждение приложения, что не позволяет нам показ/удаление уведомления.
Итак, мой вопрос: как нам обойти это ограничение? Почему такие приложения, как WhatsApp, Viber, Telegram, Signal не имеют таких ограничений, благодаря чему возможен такой результат?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ion-on-ios