Может ли ServiceWorker быть уведомлен в выбранное время в автономном режиме?

Скажем, я хочу сделать приложение-будильник на Android как прогрессивное веб-приложение.

Как и родное приложение будильника, оно должно быть уведомлено в выбранное время даже без активной веб-страницы.

Сначала я рассматривал возможность использования push API. Но, конечно, push-сообщение не может быть получено в автономном режиме. А также время прибытия push-сообщения не может быть достаточно точным для будильника.

Можно ли получать уведомления в то время даже без подключения к сети?


person Moonrise    schedule 29.08.2016    source источник
comment
Push работает в автономном режиме.   -  person Aurelia    schedule 29.08.2016
comment
Возможно ли вообще что-то получить без какого-либо канала?   -  person Moonrise    schedule 30.08.2016


Ответы (1)


То, что вы описываете, является функциональностью, которая более тесно связана с периодической фоновой синхронизацией, чем с принудительной уведомлений, поскольку для push-уведомлений требуется подключение к сети. Преимущество периодической фоновой синхронизации заключается в том, что она не зависит от сети. (Периодическая фоновая синхронизация пока является только предложением и не реализована ни в одном браузере.)

Но, к сожалению для вашего варианта использования, периодическая фоновая синхронизация явно не предназначена для событий, которые должны запускаться в точное время, что необходимо для того, чтобы будильник был полезен. Согласно первоначальному предложению:

Чем не является периодическая синхронизация

Периодическая синхронизация не является точным API-интерфейсом сигнализации. Детализация планирования составляет миллисекунды, но запуск событий может быть задержан на несколько часов в зависимости от частоты использования и состояния устройства (аккумулятор, подключение, местоположение).

Результаты запуска синхронизации должны быть полезными, а не критическими. Если ваш вариант использования имеет решающее значение, одноразовые синхронизации или push-API могут удовлетворить ваши требования.

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

person Jeff Posnick    schedule 29.08.2016
comment
Отличный ответ, хотя ссылка не работает. - person Neurotransmitter; 01.09.2020
comment
Я изменил ссылку, чтобы она указывала на web.dev/periodic-background-sync. - person Jeff Posnick; 01.09.2020