当第一次调用 stop() 方法时,计步器插件会出错

Posted

技术标签:

【中文标题】当第一次调用 stop() 方法时,计步器插件会出错【英文标题】:Step counter plugin gives error when the stop() method called after first time 【发布时间】:2018-03-24 07:35:21 【问题描述】:

我在 ionic v3.x 中执行计步器时遇到问题, 这是代码

import  Stepcounter  from '@ionic-native/stepcounter';

startPedometer() 

if (this.buttonIcon === 'md-walk') 
  this.buttonIcon = "md-man";
  this.startbuttonDisabled = false
  this.stopbuttonDisabled = true
  let startOffset = 0
  this.stepcounter.start(startOffset).then((res: any) => 
    this.success("Started : " + res)
  ).catch((err) => this.failure(err))

else if (this.buttonIcon === 'md-man') 
  this.buttonIcon = "md-walk";
  this.stopbuttonDisabled = false
  this.startbuttonDisabled = true
  this.stepcounter.stop().then((res: any) => 
    this.count = res
  ).catch((err) => this.failure(err))



ionViewDidEnter()
this.stepcounter.getStepCount().then((res:any)=>
  console.log("---------counts-----------"+JSON.stringify(res));
  this.count = res
)

我收到以下错误

service not registered: net.texh.cordovapluginstepcounter.CordovaStepCounter$1@36cef5f

请帮帮我。 任何建议表示赞赏。 谢谢。

【问题讨论】:

您是否尝试导入 https://github.com/ihadeed/cordova-plugin-stepcounter.git 而不是 https://github.com/texh/cordova-plugin-stepcounter.git 谢谢你,但实际上我放弃了使用计步器插件的想法,因为它不支持所有安卓设备,所以我使用谷歌 fit api 来计算用户的步数 【参考方案1】:

在您使用md-man 将按钮转换为“停止”按钮和实际启动请求完成之间有一段时间。

注释说明:

if (this.buttonIcon === 'md-walk') 

  // Change buttons (instant)

  this.stepcounter.start(startOffset).then((res: any) => 

    // The counter has actually started (remember this is async)

  ).catch((err) => this.failure(err))

要解决这个问题,您应该启用 then 中的停止按钮以表示“开始已完成”。

【讨论】:

感谢回复 但问题不存在。你看到我在代码下写的错误了吗?

以上是关于当第一次调用 stop() 方法时,计步器插件会出错的主要内容,如果未能解决你的问题,请参考以下文章

实现 IRegisteredObject 时不调用 stop 方法

当经典补间在第一秒不使用 stop() 时如何解决?

当传统补间在第一秒没有使用stop()时如何解决?

vue高级用法

第六十四篇OC_计步器

如何将加速度计传感器数据转换为计步器?