WebApp快捷打包
乐福衡器
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20250305.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

事件监听

setListener 设置监听器

• 如需接口调用事件,请设置此监听器;


jsBridge.lefu.setListener(function(event, data) {
    switch (event) {
        // 扫描 jsBridge.lefu.startSearch(...)
        case "search": {
            switch (data.action) {
                // 扫描到设备
                case "onSearchDevice": {
                    // data.data.device 设备对象-PPDeviceModel
                    // data.data.data   广播数据 string
                    break;
                }
            }
        }
        // 蓝牙状态回调
        case "bleState": {
            switch (data.action) {
                //切换蓝牙开关
                case "monitorBluetoothSwitchState": {
                    // data.data.state  状态,可能值
                    //   PPBleSwitchStateOn
                    //   PPBleSwitchStateOff
                    break;
                }
                //蓝牙设备工作状态
                case "monitorBluetoothWorkState": {
                    // data.data.device 设备
                    // data.data.state  状态,可能值
                    //   PPBleWorkStateSearching
                    //   PPBleWorkStateCanBeConnected
                    //   PPBleWorkSearchTimeOut
                    //   PPBleWorkSearchFail
                    //   PPBleStateSearchCanceled
                    //   PPBleWorkStateConnecting       正在连接
                    //   PPBleWorkStateConnected        已连接
                    //   PPBleWorkStateConnectFailed    连接失败
                    //   PPBleDiscoverServiceFail
                    //   PPBleWorkStateDisconnected     已断开
                    //   PPBleWorkStateWritable         可写(可交互数据)
                    break;
                }
                //仅 Android
                case "monitorMtuChange": {
                    // data.data.device 设备
                    break;
                }
            }
            break;
        }
        // 数据变化 PPDataChangeListener
        case "dataChange": {
            switch (data.action) {
                //过程数据
                case "monitorProcessData": {
                    // data.data.body   数据 PPBodyBaseModel
                    // data.data.device 设备
                    break;
                }
                //锁定数据
                case "monitorLockData": {
                    // data.data.body
                    // data.data.device
                    break;
                }
                //超重
                case "monitorOverWeight": {
                    break;
                }
                case "monitorScaleState": {
                    // data.data.scaleState
                    break;
                }
                //仅 Android
                case "monitorLockDataByCalculateInScale": {
                    // data.data.bodyFatInScaleVo
                    break;
                }
                //仅 Android
                case "monitorDataFail": {
                    // data.data.body
                    // data.data.device
                    break;
                }
                //仅 Android
                case "onImpedanceFatting": {
                    break;
                }
                //仅 Android
                case "onDeviceShutdown": {
                    break;
                }
            }
            break;
        }
        // 仅 Android
        // 设置 - 安卓打包设置 - 调试模式 - 开启 后生成的安装包可监听到 SDK 日志
        case "log": {
            // data.level 日志级别,可能值 verbose、info、debug、warn、error
            // data.text  日志内容
            return; //不在本页面底部显示日志信息
        }
    }
    //此函数仅用于显示回调参数在本 DEMO 页面上
    showResult({
        event: event,
        data : data
    });
});

//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

/**
回调参数说明:
event - 事件代码,字符串类型
data  - 事件数据,JSON 对象
**/

removeListener 移除监听器

//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.lefu.removeListener();

蓝牙设备

requestPermission 请求蓝牙权限

jsBridge.lefu.requestPermission(function(success, res) {
  if (success && res) {
    //如果 res.neverAsk == true (不再询问),请调用 jsBridge.appSettings() 打开应用设置,引导用户去手工开启权限
    alert(`${res.granted ? '已同意' : '已拒绝'}\n不再询问:${res.neverAsk}`);
  } else {
    alert(JSON.stringify(res));
  }
});

requestEnable 请求蓝牙开关状态

jsBridge.lefu.requestEnable(function(success, res) {
  if (success && res) {
    //如果设备蓝牙功能处于关闭状态,会自动提示开启
    alert(res.enabled ? "已开启" : "已关闭");
  } else {
    alert(JSON.stringify(res));
  }
});

startSearch 开始扫描

timeout:

jsBridge.lefu.startSearch({
  //超时时间,毫秒 ms,最少 5000
  timeout: {{startSearch.timeout}}
}, function(success, res) {
  //成功启动扫描后请在 setListener 监听器的 "search" 事件中处理扫描结果
  alert(success ? "已启动扫描" : JSON.stringify(res));
});

stopSearch 停止扫描

jsBridge.lefu.stopSearch(function(success, res) {
  alert(success ? "已停止" : JSON.stringify(res));
});

isSearching 是否正在扫描

jsBridge.lefu.isSearching(function(success, res) {
  if (success && res) {
    alert(res.isSearching ? "正在扫描" : "未扫描");
  } else {
    alert(JSON.stringify(res));
  }
});

人体秤 - PeripheralApple

appleStartConnect 启动连接

deviceMac:

jsBridge.lefu.appleStartConnect({
  //蓝牙设备 MAC 地址
  //需先执行 startSearch 接口搜索设备
  //用 setListener 的 search 事件中返回类型为 device.devicePeripheralType == 'PeripheralApple' 的 device.deviceMac 地址
  deviceMac: "{{appleStartConnect.deviceMac}}"
}, function(success, res) {
  //成功启动连接后仅表示启动了连接操作,并非成功连接上了
  //请在 setListener 的 bleState 事件中监听设备工作状态,PPBleWorkStateConnected 时表示连接成功
  alert(success ? "已启动连接操作" : JSON.stringify(res));
});

appleDisConnect 断开连接

jsBridge.lefu.appleDisConnect(function(success, res) {
  alert(success ? "已断开" : JSON.stringify(res));
});

appleIsConnected 是否处于已连接状态

jsBridge.lefu.appleIsConnected(function(success, res) {
  if (success && res) {
    alert(res.isConnected ? "已连接" : "已断开");
  } else {
    alert(JSON.stringify(res));
  }
});

appleSyncTime 同步时间

//仅支持历史数据的设备
jsBridge.lefu.appleSyncTime(function(success, res) {
  alert(success ? "同步成功" : JSON.stringify(res));
});

appleReadDeviceInfo 读取设备信息

jsBridge.lefu.appleReadDeviceInfo(function(success, res) {
  alert(`${success ? '成功' : '失败'}\n${JSON.stringify(res)}`);
});

appleSyncUnit 同步单位

jsBridge.lefu.appleSyncUnit({
  //单位,可选值
  //  Unit_KG
  //  Unit_LB
  //  PPUnitST_LB
  //  PPUnitJin
  //  PPUnitG
  //  PPUnitLBOZ
  //  PPUnitOZ
  //  PPUnitMLWater
  //  PPUnitMLMilk
  //  PPUnitFL_OZ_WATER
  //  PPUnitFL_OZ_MILK
  //  PPUnitST
  unit: 'Unit_KG',
  //用户
  user: {
    deviceHeaderIndex: 0,
    userName: "张三",
    userID: "user123",
    memberID: "member123",
    height: 163,
    age: 22,
    //true 男, false 女
    isMale: false,
    groupNum: 0,
    isAthleteMode: false,
    isPregnantMode: false,
    weightKg: 51.0,
    argetWeight: 0.0,
    ideaWeight: 0.0,
    userWeightTimeArray: [1735660800, 1736006400, 1736438400, 1736870400],
    userWeightArray: [50.0, 51.0, 50.0, 49.0],
    pIndex: 0,
    bmi: 0.0,
    bodyFat: 0.0,
    heartRate: 0,
    muscle: 0.0,
    muscleRate: 0.0,
    bone: 0.0,
    boneRate: 0.0,
    waterRate: 0.0
  }
}, function(success, res) {
  alert(success ? "同步成功" : JSON.stringify(res));
});

appleGetHistoryData 读取历史数据

jsBridge.lefu.appleGetHistoryData(function(success, res) {
  //res.time
  //res.body
  //res.device
  alert(`${success ? '成功' : '失败'}\n${JSON.stringify(res)}`);
});

appleDeleteHistoryData 删除历史数据

jsBridge.lefu.appleDeleteHistoryData(function(success, res) {
  alert(success ? "成功" : JSON.stringify(res));
});

appleSendResetDevice 恢复出厂

jsBridge.lefu.appleSendResetDevice(function(success, res) {
  alert(success ? "成功" : JSON.stringify(res));
});

appleResetSendListener 重置发送监听

jsBridge.lefu.appleResetSendListener(function(success, res) {
  alert(success ? "成功" : JSON.stringify(res));
});

监听回调数据: