更新记录
1.0.1(2025-02-10)
1.0.0(2025-02-08)
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.6.8,Android:5.0,iOS:11,HarmonyNext:不支持 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
yt-uts-pedometer
特别提醒
- 购买本插件前,请先试用、请先试用、请先试用,并充分自测确认满足需求之后再行购买。虚拟物品一旦购买之后无法退款;
- 如有使用上的疑问、bug,可以进交流群联系作者;
- 作者可承接各种插件定制;
- 请在合法范围内使用,若使用本插件做非法开发,本方概不负责;
- 请尽量使用Demo工程测试功能,若自己项目中若遇到使用问题,请打包Demo工程复现后,反馈问题;
- Android计步仅在App处于前后台期间可用,若App从后台管理中移除(App杀掉了,或长时间在后台被系统回收了),则不在计数。也就是app活着才会统计步数,若需后台长时间统计可结合保活插件使用(后续也会加上保活功能);
- 获取用户运动与健康权限是必须的,使用前请确保此权限打开;
uniapp 完整示例--- uniapp接入时 Android端需设置targetSdkVersion >= 29, 设置教程
<template>
<view class="content">
<button class="btn" @click="startPedometerAction()">开启计步</button>
<button class="btn" @click="stopPedometerAction()">关闭计步</button>
<button class="btn" @click="queryPedometerDataForTodayAction()">查询当天运动数据</button>
<button class="btn" @click="deleteTodayData()">清除当天步数(仅Android)</button>
<button class="btn" @click="queryPedometerDataFromDateAction()">查询日期范围内数据(仅iOS)</button>
<button class="btn" @click="authorizationStatusDeniedAction()">判断用户是否拒绝使用权限</button>
<button class="btn" @click="toSettingAction()">跳转到设置页面</button>
</view>
</template>
<script>
import {
startPedometer,
stopPedometer,
authorizationStatusDenied,
queryPedometerDataForToday,
queryPedometerDataFromDate,
StartPedometerOptions,
PedometerResultData,
QueryPedometerDataOptions,
deleteTodayPedometerData,
toSetting
} from '@/uni_modules/yt-uts-pedometer'
export default {
data() {
return {
}
},
methods: {
//开启计步服务
startPedometerAction() {
// if (authorizationStatusDenied()) {
// //用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
// return;
// }
startPedometer({
callBack: (res) => {
//ios端还返回上、下楼层数和速度
if (res.isUpdateBefore) { //截止本次服务开启前,今天已走步数
console.log(`截止本次服务开启前今日已走:${res.steps}步`)
} else { //记录本次服务开启后走的步数
console.log(`本次服务开启后已走:${res.steps}步`)
}
},
fail: (error) => {
console.log(error)
}
});
},
//关闭计步服务
stopPedometerAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
stopPedometer()
},
//删除当日步数
deleteTodayData() {
deleteTodayPedometerData()
},
//查询今天的步数
queryPedometerDataForTodayAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
queryPedometerDataForToday({
callBack: (res) => {
uni.showToast({
title: `今日已走${res.steps}步`,
icon: 'none'
})
console.log(res)
},
fail: (e) => {
console.log(e)
}
})
},
//查询时间范围内的步数 ---仅iOS有效
queryPedometerDataFromDateAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
queryPedometerDataFromDate({
startDate: '2025-01-20 00:00:00',
endDate: '2025-01-23 15:05:00',
callBack: (res) => {
console.log(res)
},
fail: (e) => {
console.log(e)
}
})
},
//查询用户是否拒绝了访问运动与健康权限
authorizationStatusDeniedAction() {
let a = authorizationStatusDenied();
console.log(a)
uni.showToast({
title: a ? '没有权限' : '有权限',
icon: a ? 'error' : 'success'
})
},
//跳到设置页面
toSettingAction() {
toSetting()
}
}
}
</script>
<style>
.content {
width: 750rpx;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.btn {
margin-top: 30rpx;
background-color: cornflowerblue;
width: 690rpx;
}
</style>
uniapp x 完整示例
<template>
<view class="content">
<button class="btn" @click="startPedometerAction()">开启计步</button>
<button class="btn" @click="stopPedometerAction()">关闭计步</button>
<button class="btn" @click="queryPedometerDataForTodayAction()">查询当天运动数据</button>
<button class="btn" @click="deleteTodayData()">清除当天步数(仅Android)</button>
<button class="btn" @click="queryPedometerDataFromDateAction()">查询日期范围内数据(仅iOS)</button>
<button class="btn" @click="authorizationStatusDeniedAction()">判断用户是否拒绝使用权限</button>
<button class="btn" @click="toSettingAction()">跳转到设置页面</button>
</view>
</template>
<script>
import {
startPedometer,
stopPedometer,
authorizationStatusDenied,
queryPedometerDataForToday,
queryPedometerDataFromDate,
StartPedometerOptions,
PedometerResultData,
QueryPedometerDataOptions,
deleteTodayPedometerData,
toSetting
} from '@/uni_modules/yt-uts-pedometer'
export default {
data() {
return {
}
},
methods: {
//开启计步服务
startPedometerAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
startPedometer({
callBack: (res) => {
//ios端还返回上、下楼层数和速度
if (res.isUpdateBefore) {//截止本次服务开启前,今天已走步数
console.log(`截止本次服务开启前今日已走:${res.steps}步`)
} else {//记录本次服务开启后走的步数
console.log(`本次服务开启后已走:${res.steps}步`)
}
},
fail: (error) => {
console.log(error)
}
} as StartPedometerOptions);
},
//关闭计步服务
stopPedometerAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
stopPedometer()
},
//删除当日步数
deleteTodayData() {
deleteTodayPedometerData()
},
//查询今天的步数
queryPedometerDataForTodayAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
queryPedometerDataForToday({
callBack: (res) => {
uni.showToast({
title: `今日已走${res.steps}步`,
icon: 'none'
})
console.log(res)
},
fail: (e) => {
console.log(e)
}
} as StartPedometerOptions)
},
//查询时间范围内的步数 ---仅iOS有效
queryPedometerDataFromDateAction() {
if (authorizationStatusDenied()) {
//用户明确拒绝了应用访问运动与健身数据的权限--引导用户去设置开启
return;
}
queryPedometerDataFromDate({
startDate: '2025-01-20 00:00:00',
endDate: '2025-01-23 15:05:00',
callBack: (res) => {
console.log(res)
},
fail: (e) => {
console.log(e)
}
} as QueryPedometerDataOptions)
},
//查询用户是否拒绝了访问运动与健康权限
authorizationStatusDeniedAction() {
let a = authorizationStatusDenied();
console.log(a)
uni.showToast({
title: a ? '没有权限' : '有权限',
icon: a ? 'error' : 'success'
})
},
//跳到设置页面
toSettingAction() {
toSetting()
}
}
}
</script>
<style>
.content {
width: 750rpx;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.btn {
margin-top: 30rpx;
background-color: cornflowerblue;
width: 690rpx;
}
</style>