更新记录

1.0.0(2024-06-05)

计步器初版


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 13.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:12 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用说明

插件声明

  1. 购买本插件前,请先试用,并充分自测确认满足需求之后再行购买。一经购买,概不退还;
  2. 如有使用上的疑问、bug或者需求建议,可以QQ(壹玖贰贰贰柒伍壹玖)反馈;
  3. 请在合法范围内使用,若使用本插件做非法开发,本方概不负责。
  4. 请尽量使用上传Demo工程测试功能,若自己项目中若遇到使用问题,请打包Demo工程复现后,反馈问题。
  5. 未找到插件报错请参见插件使用通用教程

注意事项:

  1. Android计步仅在App处于前后台期间可用,若App从后台管理中移除,则不在计数;
  2. Manifest.json文件需在源码视图手动配置传感器模块。
  3. 获取用户运动与健康权限是必须的,使用前请确保此权限打开。

插件引入

首先需要通过 uni.requireNativePlugin("ModuleName") 获取 module

var pedometerModule = uni.requireNativePlugin('LY-DCPedometerPlugin-PedometerModule');

组件Api说明

1.1 开启运动服务监听

pedometerModule.startPedometerService(callback)

/**
 * 回调参数说明
 * steps:步数,Android、iOS双端
 * floorsAscended:通过楼梯上升的大概楼层数,iOS单端
 * floorsDescended:通过楼梯下降的大概楼层数,iOS单端
 * distance:用户走路和跑步时的估计距离(米)iOS单端
 * currentPace:对于更新,返回当前速度,单位为s/m(部分情况可能为 nil,如:查询历史数据)iOS单端
 */
pedometerModule.startPedometerService((res) => {
    console.log("计步服务返回结果: " + JSON.stringify(res));
    uni.showToast({
        title: "今天已经行走" + res.steps + "步",
        icon: "none"
    })
});

callback 回调参数说明

成员名 数据类型 说明 适用
steps int 步数 Android、iOS
floorsAscended int 通过楼梯上升的大概楼层数 iOS
floorsDescended int 通过楼梯下降的大概楼层数 iOS
distance int 用户走路和跑步时的估计距离 iOS
currentPace float 当前速度 iOS

1.2 获取今天运动步数

Android由于是将实时运动数据保存至本地查询, 所以此方法并不是实时的, 视场景不同, 有半分钟到一分钟的延迟

pedometerModule.queryPedometerDataSoFarToday(callback);

// 查询今天运动数据
pedometerModule.queryPedometerDataSoFarToday((res) => {
    console.log("计步服务返回结果: " + JSON.stringify(res));
    uni.showToast({
        title: "今天已经行走" + res.steps + "步",
        icon: "none"
    })
});

1.3 查询历史数据

查询某一时间段的运动数据 (仅限iOS使用)

pedometerModule.queryPedometerDataFromDate(fromDate, toDate, callback)

// 查询某一时间段的数据
let fromDate = "2024-01-31 00:00:00";
let toDate = "2024-02-03 23:59:59";
// iOS独有API, Android端无法使用
pedometerModule.queryPedometerDataFromDate(fromDate, toDate, (res) => {
    console.log("计步服务返回结果: " + JSON.stringify(res));
    uni.showToast({
        title: "该时间段内行走" + res.steps + "步",
        icon: "none"
    })
});

1.4 权限判断

判断用户是否拒绝使用权限

let status = pedometerModule.authorizationStatusDenied();

//  请注意, 这里查询的是用户拒绝使用权限
// Android 权限询问状态是true, iOS询问状态是false
let status = pedometerModule.authorizationStatusDenied();
console.log("权限状态:" + status);
let string = (true == status) ? "用户拒绝授权" : "已授权";
uni.showToast({
    title: string,
    icon: 'none'
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-feature android:name="android.hardware.sensor.accelerometer" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" /> <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" /> <uses-feature android:name="android.hardware.sensor.stepcounter" android:required="true" /> iOS NSMotionUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

收集用户运动与健身数据,不会发送至任何服务器,本插件不对收集的数据做任何使用。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问