【发布时间】:2021-08-29 00:48:57
【问题描述】:
现在我正在开发能够连接热敏打印机的网络。我正在使用 Angular 框架,并且我使用库 ng-thermal-printer 成功地将热敏打印机与 USB 连接。但我希望我的网络也能够通过网络蓝牙连接热敏打印机,即 BLE(低功耗蓝牙)。据我所知,BLE在GATT方面有规范,里面有服务和特性。
到目前为止,我可以在服务和特性中连接热敏打印机设备并将值发送到热敏打印机设备,假设使用 UUID AS 的服务和使用 UUID AC 的特性,在应用程序的帮助下使用我的 Android 手机命名为 nRF 连接。以服务 AS 为目标并以特征 AC 发送十六进制值使我成功地在热敏纸上打印了一些东西。
但是有一个问题。在了解了正确的服务和特性之后。我在我的项目中实现了它。但是,我的 chrome 浏览器控制台显示错误:
- Origin 不允许访问任何服务...它告诉我在 requestiDevice() 时添加 optionalServices
- 在属性 optionalServices 中添加 Service AS 后,控制台显示错误 DOMException: Connection failed for unknown reason。 错误在 chrome PC 和 chrome android 中均显示。
注意:
- 我已在 chrome 上启用了实验性 Web 平台功能
- 我已启用在 chrome 上为 Web 蓝牙使用新权限后端
- 我已经为从本地主机加载的资源启用了允许无效证书。在铬上
- 我已启用在 chrome 上启用新的 USB 后端
- 我用过https。
附加问题。应用程序 nRF Connect 使用的蓝牙连接与 BLE 不同吗?如果是,为什么它会显示服务和特征?
【问题讨论】:
标签: javascript angular progressive-web-apps web-bluetooth