Этот вопрос относится к приложению:
- Это обеспечивает расширение как его единственную функцию.
- Полагается на удаленные данные, полученные с сервера.
- Не предлагает ничего полезного в пользовательском интерфейсе, чтобы пользователи регулярно его открывали.
Прекрасным примером такого приложения могут быть приложения-расширения для блокировки контента Safari (iOS 9+), но я считаю, что это не ограничивается этими приложениями.
Проблема с существующими блокировщиками контента заключается в том, что данные расширения (правила блокировки) обновляются только из основного приложения (например, после открытия пользователем). Поскольку расширение включается один раз во время установки, пользователи не намерены повторно открывать приложение на регулярной основе. Таким образом, локальные данные устаревают или устаревают — например, правила блокировки устаревают, агрессивные рекламодатели адаптируются, и ваше расширение вдруг не блокируется. Я думаю, что довольно нелепо говорить пользователю, чтобы приложение продолжало работать только для того, чтобы иметь возможность загрузить новые правила.
Итак, есть ли какой-либо законный способ поддерживать актуальность данных для приложений на основе расширений без пользовательского интерфейса:
Вещи, о которых я читал в Интернете, похоже, не работают на самом деле:
- фоновая выборка — требует, чтобы приложение работало как минимум в фоновом режиме
- тихие push-уведомления (с доступным содержимым = 1) — кажется, требуется, чтобы приложение работало как минимум в фоновом режиме. Может быть перезапущен iOS из завершенного состояния, если пользователь явно не удалил его из списка задач.
- PushKit (работает и может перезапускать убитые приложения) — подходит только для VoIP-приложений