wx-ant-ble
微信、支付宝小程序BLE蓝牙SDK
Release Notes
v1.1.0
2019/01/15
1、发布第一个可用版本。封装蓝牙接口,兼容微信和支付宝小程序。附有说明和demo。
v1.1.1
2019/08/15
1、修复微信小程序安卓手机断开连接,状态更新不回调的bug。
2、已知另一个微信小程序蓝牙bug。安卓手机在设备异常断开时(比如断电),不会触发onBLEConnectionStateChange
回调。除非在已经设置监听notify的情况下。
Features
- 兼容微信和支付宝小程序
- 简洁但功能完整的Api,可以根据需求自由调用
- 接口均有返回状态,判断是否调用成功
- 单例模式
- 完整例子
Directory
- ~/index.js SDK入口
- ~/src SDK源码
- ~/example 微信和支付宝小程序demo
Installation
npm install wx-ant-ble
// 微信小程序请查看npm文档,支付宝小程序仅下载
git clone https://github.com/zhaodahai/wx-ant-ble.git
Usage
1、引入SDK管理类和枚举
import { BTManager, ConnectStatus } from 'wx-ant-ble';
import { BTManager, ConnectStatus } from '../../wx-ant-ble/index.js';
2、初始化蓝牙管理器 & 设置用户信息
this.bt = new BTManager({
debug: true
});
3、注册回调
this.bt.registerDidUpdateConnectStatus(res => {
console.log('registerDidUpdateConnectStatus', res);
if (res.connectStatus === ConnectStatus.connected) {
this.setData({ isConnected: true });
...
}else if (res.connectStatus === ConnectStatus.disconnected) {
this.setData({ isConnected: false });
...
}
});
this.bt.registerDidDiscoverDevice(res => {
console.log('registerDidDiscoverDevice', res);
...
});
this.bt.registerDidUpdateValueForCharacteristic(res => {
console.log('registerDidUpdateValueForCharacteristic', res);
...
});
4、扫描 & 停止扫描
this.bt.scan({
services: [],
allowDuplicatesKey: false,
interval: 0,
timeout: 15000,
deviceName: '',
containName: ''
}).then(res => {
console.log('scan success', res);
}).catch(e => {
console.log('scan fail', e);
});
this.bt.stopScan()
.then(res => {
console.log('stopScan success', res);
}).catch(e => {
console.log('stopScan fail', e);
})
5、连接 & 断开连接
this.bt.connect(device)
.then(res => {
console.log('connect success', res);
}).catch(e => {
console.log('connect fail', e);
});
this.bt.disconnect()
.then(res => {
console.log('disconnect success', res);
}).catch(e => {
console.log('disconnect fail', e);
})
5、Read & Notify & Write
this.bt.read({
suuid: 'xxxx',
cuuid: 'xxxx'
}).then(res => {
console.log('read success', res);
}).catch(e => {
console.log('read fail', e);
})
this.bt.write({
suuid: 'xxxx',
cuuid: 'xxxx',
value: 'FFFF'
}).then(res => {
console.log('write success', res);
}).catch(e => {
console.log('write fail', e);
})
this.bt.notify({
suuid: 'xxxx',
cuuid: 'xxxx',
state: true/false
}).then(res => {
console.log('notify success', res);
}).catch(e => {
console.log('notify fail', e);
})
WxApp
仓库地址
Notice