Web Bluetooth:想要在使用 navigator.bluetooth.requestDevice 时过滤制造商数据
Web Bluetooth: Want to filter on manufacturer data when using navigator.bluetooth.requestDevice
我看到 Google Chrome 没有实现对制造商数据的过滤。 Issue 707635,好像没有任何进展。
Web 蓝牙规范有一个(不稳定的)规范,用于在使用 navigator.bluetooth.requestDevice 时过滤制造商数据(https://webbluetoothcg.github.io/web-bluetooth/#example-filter-by-manufacturer-service-data
有谁知道这方面是否有任何进展或进行了这种过滤工作?
正如您所指出的,Chrome 团队在这方面尚未取得进展。与此同时,按设备名称、设备名称前缀或 GATT 服务进行过滤是否适合您?
你可以试试https://googlechrome.github.io/samples/web-bluetooth/device-info.html。
简答:
- 'Star' 发布 707635 以接收更新并表示兴趣。
- 如果您有清晰的示例/业务案例要分享,请考虑添加评论以帮助开发人员了解如何确定这项工作的优先级。
- Chromium 是开源的,考虑贡献或寻找开发人员来完成这项工作。
经过我们的讨论,我在 Chrome 92 中添加了对 Web 蓝牙中制造商数据过滤器的支持。参见 https://crbug.com/707635
这是一个例子:
// Filter Bluetooth devices from Google company with manufacturer data bytes
// that start with [0x01, 0x02].
navigator.bluetooth.requestDevice({
filters: [{
manufacturerData: [{
companyIdentifier: 0x00e0,
dataPrefix: new Uint8Array([0x01, 0x02])
}]
}],
optionalServices: ['battery_service'] // Required to access service later.
})
.then(device => { /* … */ })
.catch(error => { console.error(error); });
您将在 https://googlechrome.github.io/samples/web-bluetooth/manufacturer-data-filter.html and some developer documentation at https://web.dev/bluetooth/#manufacturer-data-filter
找到样本
让我知道这是否适合你 ;)
我看到 Google Chrome 没有实现对制造商数据的过滤。 Issue 707635,好像没有任何进展。
Web 蓝牙规范有一个(不稳定的)规范,用于在使用 navigator.bluetooth.requestDevice 时过滤制造商数据(https://webbluetoothcg.github.io/web-bluetooth/#example-filter-by-manufacturer-service-data
有谁知道这方面是否有任何进展或进行了这种过滤工作?
正如您所指出的,Chrome 团队在这方面尚未取得进展。与此同时,按设备名称、设备名称前缀或 GATT 服务进行过滤是否适合您?
你可以试试https://googlechrome.github.io/samples/web-bluetooth/device-info.html。
简答:
- 'Star' 发布 707635 以接收更新并表示兴趣。
- 如果您有清晰的示例/业务案例要分享,请考虑添加评论以帮助开发人员了解如何确定这项工作的优先级。
- Chromium 是开源的,考虑贡献或寻找开发人员来完成这项工作。
经过我们的讨论,我在 Chrome 92 中添加了对 Web 蓝牙中制造商数据过滤器的支持。参见 https://crbug.com/707635
这是一个例子:
// Filter Bluetooth devices from Google company with manufacturer data bytes
// that start with [0x01, 0x02].
navigator.bluetooth.requestDevice({
filters: [{
manufacturerData: [{
companyIdentifier: 0x00e0,
dataPrefix: new Uint8Array([0x01, 0x02])
}]
}],
optionalServices: ['battery_service'] // Required to access service later.
})
.then(device => { /* … */ })
.catch(error => { console.error(error); });
您将在 https://googlechrome.github.io/samples/web-bluetooth/manufacturer-data-filter.html and some developer documentation at https://web.dev/bluetooth/#manufacturer-data-filter
找到样本让我知道这是否适合你 ;)