Прогрессивный поиск маяков веб-приложений

Можно ли искать данные маяка (uuid, url,...) с помощью прогрессивного веб-приложения, используя только веб-технологии, без использования собственных мобильных технологий (Android, ios,...)?

Заранее спасибо.


person acco93    schedule 19.06.2017    source источник


Ответы (2)


К сожалению, по состоянию на июль 2020 года это невозможно. Пока Google работает над проект WebBluetooth, чтобы обеспечить поддержку многих операций Bluetooth в браузере, по крайней мере, в реализациях Google Chrome на Android 6+, Mac или ChromeOS.

На момент написания этой статьи поиск маяков еще невозможен. API требует, чтобы ОС сканировала устройства, соответствующие запрошенным критериям, а затем позволяла пользователю выбирать устройство для подключения с помощью пользовательского интерфейса. По сути, это исключает обнаружение маяка.

API-интерфейсы сканирования Bluetooth все еще находятся в черновой форме здесь.

EDIT: API, упомянутые @zurfyx в ответе ниже, позволяют вам сканировать и подключаться к рекламируемой службе GATT, но не позволяют читать данные в рекламе. Это важное различие, поскольку чтение данных в рекламе является ключевой возможностью, необходимой для фактического обнаружения маяка Bluetooth. Эта возможность отсутствует в этом API. Без этой возможности обнаружить маяк невозможно, можно только подключиться к устройству BLE, которое может быть маяком Eddystone или другим рекламным сервисом.

ОБНОВЛЕНИЕ, июль 2020 г.: Safari вообще не будет получать какие-либо API WebBluetooth из соображений конфиденциальности, согласно объявление Apple от июня 2020 г. Это делает невозможным сканирование Bluetooth в приложениях для iOS в обозримом будущем.

По состоянию на июль 2020 года Chrome не поддерживает сканирование произвольной рекламы. См. статус здесь: https://github.com/WebBluetoothCG/web-bluetooth/blob/master/implementation-status.md

person davidgyoung    schedule 19.06.2017
comment
Apple реализовала поддержку PWA в своих браузерах в начале этого года. - person Fabian Bigler; 27.08.2018

Отказ от ответственности: я написал eddystone-web-bluetooth (a библиотека, которая упрощает чтение и запись на устройство Eddystone). github@eddystone-web-bluetooth npm@eddystone-web-bluetooth

Возможно сканировать устройства Bluetooth с помощью Web Bluetooth API (в настоящее время поддерживается только Хром).

Используя службу Bluetooth GATT, вы можете подключаться к устройствам Eddystone. и отправлять/получать данные, сообщая в соответствии с своими общедоступными спецификациями (которые в основном список кодов запросов и формат, в котором следует отправлять и ожидать их ответы).

Эти услуги включают в себя такую ​​информацию, как:

  • URL-адрес
  • Интервал рекламы
  • Состояние блокировки
  • и больше

Используя стандартную информацию Bluetooth, вы можете узнать наиболее общую информацию об устройстве, такую ​​как его идентификатор и имя:

navigator.bluetooth. устройство запроса

Информация об устройстве Bluetooth


@beaufortfrancois написал, возможно, первый код конфигурации Eddystone Web Bluetooth (исходный код / demo), так что, вероятно, стоит прочитать, если вы хотите углубиться в это. Я многому научился благодаря этому.

person zurfyx    schedule 12.07.2017
comment
Так может ли Eddystone разбудить ранее посещенный PWA? - person Miquel; 12.12.2017
comment
@Miquel, вы можете сканировать маяки независимо от того, являетесь ли вы PWA. PWA (или нет) будет обновляться PW API каждые несколько минут (по запросу). Это отвечает на ваш вопрос? - person zurfyx; 13.12.2017
comment
так что, если я правильно понимаю, pwa установит работника службы, который хром будет вызывать при обнаружении Bluetooth, и это разбудит приложение, чтобы оно могло создать push-уведомление? Есть ли образец того, как этого добиться? - person Miquel; 13.12.2017
comment
@Miquel На данный момент, учитывая свойства ServiceWorkerGlobalScope, показанные здесь (developer.mozilla .org/en-US/docs/Web/API/) не похоже, что вы можете прослушивать события Bluetooth через слушателей сервис-воркеров. - person zurfyx; 14.12.2017