小程序 蓝牙打印

最近着手开发了一个小程序的 B2B 后台管理以及业务处理系统
其中用到了蓝牙小票打印功能,踩了很多坑,特此记录一下

1. 官方 API 梳理

在这里插入图片描述
梳理一遍后,小票机应该是属于低功耗蓝牙连接,官方也有写入数据的 API
大体思路:

  1. 初始化蓝牙模块 wx.openBluetoothAdapter()
  2. 搜寻附近的蓝牙外围设备 wx.startBluetoothDevicesDiscovery()
  3. 监听寻找到新设备的事件 wx.onBluetoothDeviceFound()
  4. 连接低功耗蓝牙设备 wx.createBLEConnection()
  5. 获取蓝牙设备服务 wx.getBLEDeviceServices()
  6. 获取蓝牙设备服务的特征值 wx.getBLEDeviceCharacteristics()
  7. 向低功耗蓝牙设备特征值中写入二进制数据 wx.writeBLECharacteristicValue()
  8. 关闭蓝牙模块 wx.closeBluetoothAdapter()

2. 官方实例(遇到问题)

使用了官方的实例
在这里插入图片描述试了很久,蓝牙可以正常搜索并连接,但是并没有写入数据成功。
后来发现 **wx.getBLEDeviceCharacteristics这个 API 中返回的特征值有四个属性,代表了已连接设备是否支持此操作。而返回的 write 为 false,正好代表了不支持写入数据。

但是蓝牙打印机不可能不支持,于是发现蓝牙连接上后会有多个服务,每个服务上的特征值都可能不一样,需要循环所有的服务,然后再循环所有特征值,找到特征值为 true 的服务并写入数据即可。

3. 打印格式调整

打印格式应该是需要自己计算的,下面附上 GitHub 地址 https://github.com/1343322562/wxappBooth.git

这也是别人推给我的包,上传到 githup 给大家分享

猜你喜欢

转载自blog.csdn.net/pspxuan/article/details/107292328