更新记录
1.3.1(2020-04-28) 下载此版本
iOS:
- 处理初始化后自动断线重连问题
- 处理 deviceId 非 UUID 问题
- 支持 deviceId 直连设备,无需先扫描
- 修复已知问题
1.3.0(2020-04-26) 下载此版本
- 支持 iOS 平台
- 修正文档
1.2.0(2020-01-13) 下载此版本
增加计步、电量数据获取方法。
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
√ | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | √ |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
VpBluetooth SDK
VpBluetooth SDK
使用
引入插件
const VpBluetooth = uni.requireNativePlugin("UUCoder-VpBluetooth");
初始化模块
const result = VpBluetooth.init(event => {
switch(event.name) {
case "onSearchStarted":
console.log("开始扫描设备");
break;
case "onDeviceFounded":
console.log("扫描到设备:", event.data);
break;
case "onSearchStopped":
console.log("停止扫描设备");
break;
case "onSearchCanceled":
console.log("取消扫描设备");
break;
}
});
console.log("VpBluetooth.init: ", result);
开始扫描设备
VpBluetooth.startScanDevice();
停止扫描设备
VpBluetooth.stopScanDevice();
连接到设备
const result = VpBluetooth.connectDevice("E1:C3:7F:97:08:6D", result => {
if (result.state !== "SUCCESS") {
console.log("连接设备失败");
return;
}
switch(result.type) {
case "connectResponse":
console.log("连接设备成功,是否为 DFU 模式:", result.isoadModel);
break;
case "notifyResponse":
console.log("设备监听已就绪");
break;
}
});
console.log("VpBluetooth.connectDevice: ", result);
校验密码
// 默认密码 0000
const result = VpBluetooth.confirmDevicePwd("0000", result => {
// - onPwdDataChange
// {
// "type": "onPwdDataChange",
// "data": {
// "deviceVersion": "02.13.04",
// "wearDetectFunction": "\"UNSUPPORT\"",
// "openNightTurnWriste": "\"SUPPORT_OPEN\"",
// "deviceTestVersion": "02.13.04.00",
// "mStatus": "\"CHECK_AND_TIME_SUCCESS\"",
// "deviceNumber": 1039,
// "findPhoneFunction": "\"UNSUPPORT\"",
// "haveDrinkData": false
// }
// }
// - onFunctionSupportDataChange
// {
// "type": "onFunctionSupportDataChange",
// "data": {
// "allMsgLength": 17,
// "wathcDay": 3,
// "heartDetect": "\"SUPPORT\"",
// "weChatSport": "\"SUPPORT\"",
// "drink": "\"UNSUPPORT\"",
// "screenLightTime": "\"SUPPORT\"",
// "camera": "\"SUPPORT\"",
// "alarm2": "\"SUPPORT\"",
// "precisionSleep": "\"SUPPORT\"",
// "longseat": "\"SUPPORT\"",
// "spo2HAdjuster": "\"SUPPORT\"",
// "sportmodelday": 3,
// "originProtcolVersion": 3,
// "countDown": "\"SUPPORT\"",
// "newCalcSport": "\"SUPPORT\"",
// "screenStyleFunction": "\"SUPPORT\"",
// "spo2HBreathBreak": "\"UNSUPPORT\"",
// "contactMsgLength": 4,
// "nightTurnSetting": "\"SUPPORT\"",
// "hidFuction": "\"UNSUPPORT\"",
// "fatigue": "\"UNSUPPORT\"",
// "bp": "\"SUPPORT\"",
// "lowPower": "\"SUPPORT\"",
// "beathFunction": "\"UNSUPPORT\"",
// "sportModel": "\"SUPPORT\"",
// "screenLight": "\"SUPPORT\"",
// "screenstyle": 4,
// "ecg": "\"SUPPORT\"",
// "heartWaring": "\"SUPPORT\"",
// "women": "\"UNSUPPORT\"",
// "multSportModel": "\"UNSUPPORT\"",
// "hrvFunction": "\"SUPPORT\"",
// "angioAdjuster": "\"UNSUPPORT\"",
// "spo2H": "\"SUPPORT\""
// }
// }
switch(result.type) {
case "onPwdDataChange":
console.log("密码信息:", result.data);
break;
case "onFunctionSupportDataChange":
console.log("设备信息:", result.data);
break;
}
});
console.log("VpBluetooth.confirmDevicePwd: " + result);
同步用户信息
/**
* 同步用户信息
* @param {number} 性别:1-男,0-女
* @param {number} 身高CM
* @param {number} 体重KG
* @param {number} 年龄
* @param {number} 每日目标步数
*/
VpBluetooth.syncPersonInfo(1, 168, 58, 24, 10000, result => {
// result.status
// OPRATE_SUCCESS - 成功
// OPRATE_FAIL - 失败
// UNKNOW - 未知错误
});
开始测量心率
VpBluetooth.startDetectHeart(result => {
// 测量前
// {
// "status": "STATE_INIT",
// "value": 0
// }
// 测量中
// {
// "status": "STATE_HEART_NORMAL",
// "value": 76
// }
// 测量错误
// {
// "status": "STATE_HEART_WEAR_ERROR",
// "value": 0
// }
});
停止测量心率
VpBluetooth.stopDetectHeart();
开始测量血氧
VpBluetooth.startDetectSPO2H(result => {
// 测量前
// {
// "state": "OPEN",
// "value": 0
// }
// 测量中
// {
// "state": "OPEN",
// "value": 98
// }
// 测量错误
// {
// "state": "OPEN",
// "value": 1
// }
// 测量结束
// {
// "state": "CLOSE",
// "value": 1
// }
});
停止测量血氧
VpBluetooth.stopDetectSPO2H();
开始测量血压
VpBluetooth.startDetectBP(result => {
// 正常
// {
// "status": "STATE_BP_NORMAL",
// "progress": 100, // 测量进度
// "highPressure": 120, // 收缩压
// "lowPressure": 90 // 舒张压
// }
// 异常
// {
// "status": "STATE_BP_BUSY",
// "progress": 0,
// "highPressure": 0,
// "lowPressure": 0
// }
});
停止测量血压
VpBluetooth.stopDetectBP();
读取计步数据
VpBluetooth.readSportStep(result => {
// 数据
// {
// "dis": 0.032, // 距离(km)
// "calcType": 2, // 计算方式, 0 表示传统算法,1 表示新算法公式,2表示运动模式的设备
// "step": 42, // 步数
// "kcal": 2.1 // 卡路里(kcal)
// }
});
读取电量
VpBluetooth.readBattery(result => {
// 数据
// {
// "batteryLevel": 2 // 电量等级:1-4,4表示满电
// }
});
断开连接
VpBluetooth.disconnectWatch();