原生插件通用使用流程:

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

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://ask.dcloud.net.cn/article/35763
iOS 离线打包原生插件另见文档 https://ask.dcloud.net.cn/article/35764


使用前说明 很重要!!!!!

  • 计步器主逻辑代码来源:TodayStepCounter 感谢作者的无私奉献!!!

  • 本人对代码二次封装,制作uniapp安卓原生插件给uni的开发者学习参考!

  • 只有android版本 暂无 IOS版本

  • 如果你对计步器的准确率要求很高!!此插件应该不能满足你的需求!!!

  • 计步器目前存在的问题

    • 测试发现计步器准确率不高,应用如果被杀掉进程,则无法继续记录步数!!!前台关闭没有影响(记录步数逻辑在独立进程的service中!)
    • 计步器步数记录会有很多错误记录,如摇晃手机也会记录在步数中,原因是传感器或陀螺仪无法对走路的动作完全匹配,就会出现以上步数不准确问题。目前还没有好的方式解决这样的错误记录!
    • 对部分手机的支持不够,可能会出现无法记录步数问题!(因为没有太多的测试机,只测了手头上有的机型,未发现问题,但有使用TodayStepCounter开发者说在华为某些机型上会无法记录步数!)
  • 目前android还没有一个统一的计步器接口,所以几乎没有完美的计步器! 当然QQ和微信等有“白名单”外挂除外(不会被杀掉进程才是硬道理啊!!)

集成插件

API

initialize()


计步器初始化,使用计步器必须要先调用此函数!!!初始化完毕 会触发GlobalEvent事件 key为: StepCounter_Ready。 特别注意一点 先注册StepCounter_Ready事件监听,再调用initialize初始化,防止StepCounter_Ready触发较快漏掉。

getCurrentTimeSportStep(callback)


获取今日当前步数

需要在StepCounter_Ready事件触发后调用

参数

参数 类型 说明
callback function 返回步数列表数据

callback返回值

类型 说明
int 步数

返回值

getTodaySportStepArray(callback)


获取所有步数列表

需要在StepCounter_Ready事件触发后调用

参数

参数 类型 说明
callback function 返回步数列表数据

callback返回值

类型 说明
array 数组类型!无数据返回空数组 具体keys查看“array对象keys说明”

返回值

getTodaySportStepArrayByDate(date, callback)


根据时间获取步数列表

需要在StepCounter_Ready事件触发后调用

参数

参数 类型 说明
date String 日期 格式yyyy-MM-dd
callback function 返回步数列表数据

callback返回值

类型 说明
array 数组类型!无数据返回空数组 具体keys查看“array对象keys说明”

返回值

getTodaySportStepArrayByStartDateAndDays(date, days, callback)


根据时间和天数获取步数列表

需要在StepCounter_Ready事件触发后调用

参数

参数 类型 说明
date String 日期 格式yyyy-MM-dd
days int 天数
callback function 返回步数列表数据

callback返回值

类型 说明
array 数组类型!无数据返回空数组 具体keys查看“array对象keys说明”

返回值

array对象keys说明

key名称 值域 说明
kaluli float 卡路里消耗
km float 千米
sportDate long 时间戳
stepNum int 步数
today String 日期

例子:

[{"kaluli":"0.0","km":"0.00","sportDate":1548242367459,"stepNum":0,"today":"2019-01-23"},{"kaluli":"0.9","km":"0.01","sportDate":1548242480956,"stepNum":23,"today":"2019-01-23"}]

Event事件

StepCounter_Ready


计步器初始化完毕事件!!!

示例:


// 注册计步器
var step = uni.requireNativePlugin('DC-StepCounter');
// 注册globalEvent
var globalEvent = uni.requireNativePlugin('globalEvent');
// 监听globalEvent事件 StepCounter_Ready 在ready后调用计步器相关API
globalEvent.addEventListener("StepCounter_Ready", function (e) {
        step.getCurrentTimeSportStep(function(n) {
            console.log('走了'+n+'步');
        })
        // 2019-01-13 为时间 使用者根据当前时间修改
        step.getTodaySportStepArrayByDate("2019-01-13", function(array){
                console.log(JSON.stringify(array));
        })
});
//调用初始化 先注册StepCounter_Ready事件 再调用initialize初始化 防止StepCounter_Ready事件丢失
step.initialize();

升级记录

  • 0.0.2 修复部分手机getTodaySportStepArrayByStartDateAndDays、getTodaySportStepArrayByDate不返回信息问题

隐私、权限及商业化声明

1. 本插件需要申请的手机端权限列表:

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

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

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