由于系统平台差异,iOS 和 android 采用不同的计步策略。本原生插件特封装了两种适合各自平台的相关接口。
一 、适合 android 平台的接口:
startCount
stopCount
getSteps
二 、适合 iOS 平台的接口:
getStepCount
android 平台计步接口说明
在 android 平台上,原生插件底层实现了一个计步器的功能,当 app 启动,并调用 startCount 接口,原生插件计步器开始记录步行数据。当此 app 切入后台不影响该计步器的记录。当用户从后台关闭该 app,则停止记录。因此,要想完整记录步行数据,则必须保证 app 至少能在后台运行。
Android 调用方式及流程:
Android 计步器的统计周期为调用 startCount 到调用 stopCount 之间,如果再此调用startCount 计步器将从零开始统计
//调用 startCount 方法开启统计监听服务,此时原生插件开始统计,可在回调函数获取步行事件及其数据记录
startCount(callback(ret)):
//返回当前统计的总步数
getSteps(callback(ret)):
//停止统计 stopCount():
iOS 平台计步接口说明
在 iOS 平台上,手机系统会自动记录步行数据,开发者只需获取系统记录的步行数据即可。
注意:
在 iOS 平台上使用本功能,需要在 生成包名(bundle id) 的时候,勾选 HealthKit 功能。如下图:
iOS 上使用本原生插件前,需要先配置一个 entitlement 文件。配置方法参考论坛帖子 iOS修改entitlements文件
注意:云编译时要申请勾选健康分享的相关权限。
开始计步
startCount(callback(ret))
useStepCountSensor:
notificationTips:
ret:
{
steps: 20 //数字类型;当前统计的步数
}
var pedometer = api.require('pedometer');
pedometer.startCount(function(ret) {
alert(ret.steps);
});
Android系统
可提供的1.0.0及更高版本
停止计步
stopCount()
var pedometer = api.require('pedometer');
pedometer.stopCount();
Android系统
可提供的1.0.0及更高版本
获取当前统计的步数****
getSteps(callback(ret))
ret:
{
steps: 20 //数字类型;行走的步数
}
var pedometer = api.require('pedometer');
pedometer.getSteps(function(ret) {
alert(ret.steps);
});
Android系统
可提供的1.0.0及更高版本
获取步数
getStepCount({params}, callback(ret))
startTime:
endTime:
count:
remove:
{
total : 0 //数字类型,行走的总步数
beginTime : '', //字符串类型,开始时间,格式:yyyy-MM-dd HH:mm:ss
finishTime : '', //字符串类型,完成时间,格式:yyyy-MM-dd HH:mm:ss
details:[{ //数组类型;详情数据
stepCount : 20, //数字类型;步数
startTime : '', //字符串类型;开始时间,格式:yyyy-MM-dd HH:mm:ss
endTime : '', //字符串类型;结束时间,格式:yyyy-MM-dd HH:mm:ss
source: { //JSON对象;数据源信息
name: 'YonBuilder的 Apple Watch',//字符串类型;名字
version: '3.2.2', //字符串类型;版本号
bId: '', //字符串类型;bundleIdentifier
},
device: { //JSON对象;数据源的设备信息,假如本数据来自iphone的其它app(如小米运动等)则本参数为空
name: 'Apple Watch', //字符串类型;名字
manufacturer:'Apple', //字符串类型;制造商
model:'Watch', //字符串类型;设备类型
hardwareVersion:'Watch1,1' //字符串类型;固件版本
softwareVersion:'3.2.2 ' //字符串类型;软件版本
}
},{
stepCount : 30,
startTime : '',
endTime : '',
}]
}
var pedometer = api.require('pedometer');
pedometer.getStepCount({
count: 0,
startTime: '2016-07-13 07:20:30',
endTime: '2016-07-13 12:00:00'
}, function(ret) {
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统
可提供的1.0.0及更高版本