目前解决完毕了!已经实现打印功能了,感谢各位!
我目前在uniapp上实现了app的蓝牙打印小票,现在就是要在web端蓝牙上也实现同样的效果,因为自己也是个小白,网上也没有太多关于web端蓝牙的使用,想问一下有么有大佬用过web的蓝牙,致谢!
let device = await navigator.bluetooth.requestDevice({
filters: [{name: 'MTP-3_77A3'}],
})
let server = await device.gatt.connect()
let service = await server.getPrimaryService('e7810a71-73ae-499d-8c15-faa9aef0c3f2')
console.log(service);
在service这里就报错:Uncaught (in promise) DOMException: Origin is not allowed to access any service. Tip: Add the service UUID to 'optionalServices' in requestDevice() options.
有大佬教一下完整的使用方法吗?需求就是连上蓝牙然后给蓝牙发送打印数据。
目前这个阶段已经解决了,解决方法就是在requestDevice里加optionalServices,然后我说一下这里面有一个巨坑,就是uuid不要写大写的写大写就会报错,下一步应该就是写入数据了,以下是目前代码进度:
let device = await navigator.bluetooth.requestDevice({
filters: [{ name: 'MTP-3_77A3' }],
optionalServices: ['e7810a71-73ae-499d-8c15-faa9aef0c3f2']
})
let server = await device.gatt.connect()
let service = await server.getPrimaryService('e7810a71-73ae-499d-8c15-faa9aef0c3f2')
let characteristic = await service.getCharacteristic('bef8d6c9-9c21-4c9e-b632-bd58c1009f9f');
console.log(1, characteristic);
参考推荐文献: WebBluetooth API: Web端蓝牙打印的开始
没用过这个 API,查阅 MDN Bluetooth 文档可知,有两个方向:
optionalServices
里再试试