更新记录

1.0.0(2025-12-22)

  • 初次发布。
  • 支持 Android、iOS、HarmonyOS Next 三端计步。
  • 支持实时步数监听(增量计算)。
  • 支持历史步数查询(iOS 支持 7 天历史,Android 支持运行期间记录查询)。
  • 适配 Android 10+ 运行时权限。
  • 采用 UTS 架构,无原生依赖,体积轻巧。

平台兼容性

uni-app(4.57)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- √ × × √ √ 5.0 12 √
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x(4.57)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 12 √ ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

beautifulman-fNumber 计步器插件

基于 UTS 开发的高性能计步器插件,支持 Android、iOS 和 HarmonyOS Next。提供实时步数监听和历史步数查询功能。

平台支持情况

Android iOS HarmonyOS Next
支持 (SDK 21+) 支持 (iOS 12+) 支持

注意:Android 端由于硬件特性,历史步数查询仅能查询到插件运行期间记录过的数据。iOS 支持查询过去 7 天的历史数据。

准备工作

使用本插件需要配置相关权限。

Android 配置

在 manifest.json 的 app-plus -> distribute -> android -> permissions 中添加:

"<uses-permission android:name=\"android.permission.ACTIVITY_RECOGNITION\"/>"

且建议设置 targetSdkVersion 为 29 或更高。

iOS 配置

在 manifest.json 的 app-plus -> distribute -> ios -> privacyDescription 中添加:

"NSMotionUsageDescription": "需要访问您的运动数据以进行计步"

HarmonyOS 配置

插件已内置权限声明:ohos.permission.ACTIVITY_MOTION。


API 说明

1. isStepCountingSupported()

检查当前设备是否支持计步功能。

返回值:Boolean (true: 支持, false: 不支持)

示例代码:

import { isStepCountingSupported } from "@/uni_modules/beautifulman-fNumber";

const isSupported = isStepCountingSupported();
console.log(isSupported ? "支持计步" : "不支持计步");

2. startStepCountUpdates(options)

开始实时监听步数更新。每当步数发生变化时,会触发 success 回调。

参数说明: 参数名 类型 必填 说明
success Function 是 成功回调,返回 StepCountResult
fail Function 否 失败回调
complete Function 否 完成回调
StepCountResult 说明: 属性名 类型 说明
steps Number 增量步数(自调用此方法起的累计步数)
timestamp Number 当前时间戳

示例代码:

import { startStepCountUpdates } from "@/uni_modules/beautifulman-fNumber";

startStepCountUpdates({
  success: (res) => {
    console.log("实时步数:", res.steps);
  },
  fail: (err) => {
    console.error("启动失败:", err.errMsg);
  }
});

3. stopStepCountUpdates()

停止实时步数监听,释放系统资源。

示例代码:

import { stopStepCountUpdates } from "@/uni_modules/beautifulman-fNumber";

stopStepCountUpdates();

4. queryStepCount(options)

按日期范围查询步数。

参数说明: 参数名 类型 必填 说明
startDate Number 是 开始时间戳 (ms)
endDate Number 是 结束时间戳 (ms)
success Function 是 成功回调
fail Function 否 失败回调

示例代码:

import { queryStepCount } from "@/uni_modules/beautifulman-fNumber";

const now = new Date();
const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime();

queryStepCount({
  startDate: todayStart,
  endDate: now.getTime(),
  success: (res) => {
    console.log("今日总步数:", res.steps);
  },
  fail: (err) => {
    console.error("查询失败:", err.errMsg);
  }
});

错误码说明

错误码 说明
9010001 权限不足(未授权健身运动权限)
9010002 设备不支持传感器或功能不可用
9010003 启动监听或查询失败

隐私、权限声明

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

android:android.permission.ACTIVITY_RECOGNITION; iOS:NSMotionUsageDescription; HarmonyOS Next:ohos.permission.ACTIVITY_MOTION

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

1. 采集的数据内容 本插件仅采集与计步相关的原生传感器数据,具体包括: 传感器原始步数:从设备硬件传感器(Android 的 TYPE_STEP_COUNTER 或 iOS 的 CMPedometer)获取的累计步数。 计算后的步数:插件会根据原始数据计算出“当前增量步数”和“当日总步数”。 时间戳:记录步数产生时的系统时间(用于历史查询排序和计算)。 2. 发送的服务器地址 无服务器传输:本插件不包含任何网络请求逻辑,不会将您的步数数据发送到任何远程服务器。 本地存储: Android:为了支持历史查询,插件会将当日步数临时加密存储在手机本地的 SharedPreferences(私有存储区域)中。 iOS/鸿蒙:直接调用系统底层数据库,插件本身不另存副本。 数据流向:数据仅在您的 App 内部流转,由插件接口返回给您的前端 Vue 页面。 3. 数据用途说明 采集到的数据仅用于以下用途: 实时展示:在 App 界面上实时反馈用户当前的运动步数。 历史记录:允许用户查看过去几天的运动达标情况(例如展示“今日总计”或“历史查询”)。 本地统计:供 App 开发者根据步数进行本地化的健康算法处理(如消耗热量计算等,需开发者在业务层实现)。

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

无