更新记录
1.0.0(2024-06-05)
计步器初版
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 13.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:12 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
插件使用说明
插件声明
- 购买本插件前,请先试用,并充分自测确认满足需求之后再行购买。一经购买,概不退还;
- 如有使用上的疑问、bug或者需求建议,可以QQ(壹玖贰贰贰柒伍壹玖)反馈;
- 请在合法范围内使用,若使用本插件做非法开发,本方概不负责。
- 请尽量使用上传Demo工程测试功能,若自己项目中若遇到使用问题,请打包Demo工程复现后,反馈问题。
- 未找到插件报错请参见插件使用通用教程
注意事项:
- Android计步仅在App处于前后台期间可用,若App从后台管理中移除,则不在计数;
- Manifest.json文件需在源码视图手动配置传感器模块。
- 获取用户运动与健康权限是必须的,使用前请确保此权限打开。
插件引入
首先需要通过 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'
})