更新记录
1.0.0(2026-07-23) 下载此版本
初版插件
平台兼容性
uni-app(3.8.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | - | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
轻牛JS蓝牙库
demo使用
下载
git clone https://gitee.com/yolandaqingniu/qn_mp_plugin_demo
安装依赖
yarn
安装依赖后
1. 使用小程序开发者工具打开项目,打开时将将appid改为客户自己的小程序appid
2. 打开后调试器会报错提示需要授权使用插件,直接申请即可通过
3. 重新编译或重新打开项目
4. 工具 --> 构建npm, 注意检查是否勾选本地设置的使用npm模块
5. 预览,可以进行测试了
demo页面说明
1、setting设置页面,用来设置一些用户信息和插件内部的配置项
该界面第一行用来指定跳转到自动页面还是手动控制页面
2、measuring测量页面,模拟实际应用场景,有测量报告页面
3、setWifi,配网页面,与双模称有关
4、deepReport,八电级深度报告展示页面
使用流程介绍
1、初始化
先把插件实例化,并设置蓝牙事件监听类和设备事件监听类
然后在page的onReady事件中,调用初始化方法
注意!安卓手机通常都需要打开定位开关才能使用蓝牙功能,苹果手机则需要获得蓝牙权限
//引入插件
const { QNMPPlugin, QNConsts } = requirePlugin('QNBleApi');
/**
* 微信的本地日志功能,需要用户手动反馈才能拿到日志文件
*/
const logger = () => {
const wxlogger =
wx.getLogManager &&
wx.getLogManager({
level: 0,
});
const log = (...params) => {
console.log(...params);
wxlogger && wxlogger.log(...params);
};
return {
log,
};
}
onLoad: function (options) {
// 初始化蓝牙
this.bleApi = new QNMPPlugin({
appId: APPID, // 必须, 客户小程序的appid, 需要配置才能使用,
logger: logger(), // 非必须,日志功能,最好有,方便排查问题,可以替换为客户自己的
});
// 错误监听
this.bleApi.onError = (err) => { console.error('捕捉到错误', err.detail); };
// 初始化成功后会进行回调,主要用于蓝牙开始扫描发现设备
this.bleApi.onReady = ({
bleEnableState, // 表示当前蓝牙是否为开启状态
}) => {
if (bleEnableState) {
this.bleApi.startBleDeviceDiscovery();
} else {
console.log('蓝牙状态为关闭');
}
};
// 设置蓝牙监听事件
this.bleApi.setBleEventListener(this.bleEventListener());
// 初始化
// checkBleAvailable 为检测蓝牙权限是否可用,安卓为位置开关和蓝牙权限
// iOS为蓝牙权限
// checkBleAvailable由用户自己实现,并在页面中进行对应的蓝牙权限使用提示
checkBleAvailable().then(() => this.bleApi.init())
}
2、启动扫描
调用 this.bleApi.startBleDeviceDiscovery(),会启动蓝牙扫描
扫描的数据会在this.bleApi.setBleEventListener(this);中的 onBleDeviceFound 回调,其中参数是扫描到的设备对象
3、创建连接
调用 this.bleApi.createBleConnection(device, deviceEventListener, operation) 会进行ble的连接
device指的是onBleDeviceFound回调中发现的设备deviceEventListener指的是对应所接设备的事件监听,主要用于获取用户测量数据等operation对应设备创建连接时所需参与
4、处理数据
连接成功后,会在deviceEventListener中的, onGetUnsteadyWeight和 onGetScaleData等方法回调一些数据
最终稳定的数据会在 onGetScaleData中回调。在这个方法中可以用demo提供的报告数据类生成报告数据类
5、停止蓝牙活动
在离开页面的时候,需要调用this.bleApi.stop() 来停止当前的蓝牙活动
// !!! 一定要调用停止扫描,防止退出页面后还有监听事件,并执行对应操作
onUnload: function () {
this.stopBle();
},
事件监听说明
插件中主要提供两个事件监听回调
- 蓝牙事件监听回调,回调蓝牙相关的事件,比如蓝牙开关变化,连接成功,扫描到数据等
- 设备事件回调,回调设备端的事件,该回调需要在连接成功后,才能生效,不同的设备,可能回调的时间不一样
蓝牙事件回调
interface QNBleEventListener {
/**
* 蓝牙开关状态变化,available 为true 蓝牙已打开,false 是蓝牙已关闭。
* 用于处理展示蓝牙状态
*/
onBluetoothEnableChange: (payload: { available: boolean }) => void;
/**
* 回调启动了蓝牙扫描
*/
onStartDiscoveryDevice: () => void;
/**
* 回调停止了蓝牙扫描
*/
onStopDiscoveryDevice: () => void;
/**
* 回调扫描到的蓝牙设备
* 主要用于对配对的设备进行连接
*/
onBleDeviceFound: (device: QNBleDevice) => void;
/**
* 设备连接成功
*/
onConnected: (payload: { deviceId: string }) => void;
/**
* 设备断开连接
*/
onDisconnected: (payload: { deviceId: string }) => void;
/**
* 设备连接超时
*/
onConnectOverTime: (payload: { deviceId: string }) => void;
// onError: QNBleErrorListener
}
设备事件回调
体脂秤
- 官网无法查看,下载demo后查看设备事件回调
厨房秤
- 官网无法查看,下载demo后查看设备事件回调
身高一体机
- 官网无法查看,下载demo后查看设备事件回调
多用户蓝牙WiFi秤
- 官网无法查看,下载demo后查看设备事件回调

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
下载 1
赞赏 0
下载 12450628
赞赏 1935
赞赏
京公网安备:11010802035340号