Может ли прогрессивное веб-приложение (PWA) запускать фоновую службу на мобильном устройстве для получения данных с аппаратного обеспечения (акселерометр, GPS...)?
Я вижу, что мы можем проверить возможности мобильного браузера, используя https://whatwebcando.today/, но можно ли запрашивать аппаратные API, если они не работают на переднем плане?
Я имею в виду... Могу ли я с помощью PWA создать приложение, которое получает информацию об оборудовании при работе в фоновом режиме, как Octo U для Android, и отправляет эту информацию на веб-сервер?
2 ответа
Современный метод запуска кода "в фоновом режиме" заключается в использовании сервисного работника, либо через его push
обработчик события (запускается через входящее push-сообщение) или через его sync
обработчик событий (запускается автоматическим воспроизведением задачи, которая ранее не выполнялась).
В настоящее время невозможно получить доступ к типу аппаратных датчиков, о которых вы спрашиваете, внутри сервисного работника.
Работники сервиса работают по модели, управляемой событиями. Это означает, что они раскручиваются только при зарегистрированных событиях (пользовательский интерфейс браузера делает сетевой запрос, push-уведомления и фоновую синхронизацию). Я думаю, что вы просите о возможностях геофенкинга. AFAIK это то, что обсуждается, чтобы добавить к модели SW. Если нет, то это должно быть потому, что это будет очень ценно для маркетинговых целей. Я знаю, что это используется в нативных приложениях, поэтому я думаю, что это будет на радаре. GPS доступен из внешнего интерфейса и уже много лет используется в браузере. Однако пользователю необходимо загрузить ваш сайт /PWA в браузер.