Bluetooth 渐进式web应用程序信标搜索

Bluetooth 渐进式web应用程序信标搜索,bluetooth,beacon,progressive-web-apps,eddystone,web-bluetooth,Bluetooth,Beacon,Progressive Web Apps,Eddystone,Web Bluetooth,有没有可能只使用web技术而不使用本机移动技术(Android、ios等)通过渐进式web应用程序搜索信标数据(uuid、url等) 提前谢谢 不幸的是,截至2020年7月,这是不可能的。尽管谷歌一直致力于为浏览器带来对许多蓝牙操作的支持,至少在Android 6+、Mac或ChromeOS上的谷歌Chrome实现中是如此 在撰写本文时,还不可能扫描信标。API要求操作系统扫描符合请求条件的设备,然后让用户使用用户界面选择要连接的设备。这基本上排除了信标检测 蓝牙扫描API仍处于草稿状态 编辑:

有没有可能只使用web技术而不使用本机移动技术(Android、ios等)通过渐进式web应用程序搜索信标数据(uuid、url等)


提前谢谢

不幸的是,截至2020年7月,这是不可能的。尽管谷歌一直致力于为浏览器带来对许多蓝牙操作的支持,至少在Android 6+、Mac或ChromeOS上的谷歌Chrome实现中是如此

在撰写本文时,还不可能扫描信标。API要求操作系统扫描符合请求条件的设备,然后让用户使用用户界面选择要连接的设备。这基本上排除了信标检测

蓝牙扫描API仍处于草稿状态

编辑:下面的答案中@zurfyx提到的API允许您扫描并连接到广告中的GATT服务,但不允许您读取广告中的数据。这是一个关键的区别,因为读取广告中的数据是实际蓝牙信标检测所需的关键功能。该API缺少该功能。如果没有该功能,就不可能检测到信标,只能连接到可能是Eddystone或其他基于服务广告的信标的BLE设备

2020年7月更新:出于隐私考虑,Safari将不会获得任何WebBluetooth API,据称,这使得在可预见的未来,在iOS we应用程序上无法进行蓝牙扫描


截至2020年7月,Chrome不支持扫描任意广告。请参阅此处的状态:

免责声明:我编写了一个库(该库可以方便地读取和写入Eddystone设备)

可以使用()扫描蓝牙设备

通过使用,您可以连接到Eddystone设备,并通过以下方式发送/接收数据(基本上是请求代码列表,以及发送和期望响应的格式)

这些服务包括以下信息:

  • 网址
  • 广告时间间隔
  • 锁定状态
通过使用蓝牙标准信息,您可以了解最通用的设备信息,例如其id和名称:



编写了可能是第一个Eddystone Web Bluetooth配置代码(/),因此,如果您想深入了解,可能值得一读。我从中学到了很多。

那么埃迪斯通能唤醒之前访问过的PWA吗?@Miquel无论是PWA,你都可以扫描信标。PWA(或非PWA)将由PW API每隔几分钟重新蚀刻一次(如有要求)。这回答了你的问题吗?如果我理解的很好,pwa将安装一个服务工人,当发现蓝牙时chrome将调用该服务工人,这将唤醒应用程序,以便它可以创建推送通知?有没有关于如何实现的示例?@Miquel目前,考虑到此处显示的
serviceworglobalscope
属性(),您似乎无法通过servicework侦听器收听蓝牙事件。苹果今年早些时候在其浏览器中实现了PWA支持。