更新记录
V1.0(2023-03-01)
下载此版本
初次发布
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
app-vue app-nvue |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
使用方法
- 引入文件 import Bluetooth from "@/common/bluebooth.js"
- 实例化对象const bluetooth = new Bluetooth(bluetoothName, osName, readCallBack, msgCallBack)
- 初始化初始化蓝牙模块bluetooth.initBluetooth()
- 获取搜索设备bluetooth.searchDevice(newDeviceCallback)
- 向蓝牙设备写入数据bluetooth.manualConnectDevice(deviceId,writeArrayBuffer)
- 断开指定设备连接bluetooth.closeBLEConnection(deviceId)
参数说明
Bluetooth(bluetoothName,osName,readCallBack,msgCallBack)
参数 |
说明 |
示例 |
bluetoothName |
蓝牙能搜索到的设备名称 |
一号打印机 |
osName |
ios或android默认按照安卓的方式处理蓝牙连接通信 |
无 |
readCallBack |
回调函数,蓝牙设备返回数据,格式:{deviceId,write,read} |
无 |
readCallBack.deviceId |
蓝牙设备ID |
11:5D:1F:44:1A:13 |
readCallBack.write |
写入蓝牙的数据,类型ArrayBuffer需要使用Int8Array 或者等同的视图引用它 |
new Uint8Array(write) |
readCallBack.read |
读取蓝牙的数据,类型ArrayBuffer需要使用Int8Array 或者等同的视图引用它 |
new Uint8Array(read) |
msgCallBack |
回调函数,蓝牙连接中产生的错误,格式{type,msg} 建议自定义 参数不在说明 |
无 |
searchDevice(newDeviceCallback)
参数 |
说明 |
示例 |
newDeviceCallback |
发现新设备的回调 |
无 |
newDeviceCallback.device |
搜索到的蓝牙设备 |
无 |
newDeviceCallback.device.deviceId |
蓝牙设备ID |
11:5D:1F:44:1A:13 |
manualConnectDevice(deviceId,writeArrayBuffer)
参数 |
说明 |
示例 |
deviceId |
设备id |
无 |
writeArrayBuffer |
ArrayBuffer类型 |
可以使用new Uint8Array([0x01,0x02]).buffer这种方式转化 |
closeBLEConnection(deviceId)
特殊说明
- 在实际项目中initBluetooth 初始化蓝牙和 closeBlueAdapter 是成对出现的,在调用搜索设备时searchDevice(newDeviceCallback) 如果发现设备不要立即向设备写入数据 manualConnectDevice(deviceId,writeArrayBuffer),否者大概率会写入失败,建议使用延时函数延迟一段时间(本人是1秒)再写数据
- 需要修改bluebooth.js文件中this.serviceId(主服务ID)和this.characteristicId(蓝牙服务特征值),这些是标识你要向某个特征值写入数据,可以调用bluetooth.getBLEDeviceServices(deviceId) 查看所有主服务与特征值