一段时间以来,我一直在互联网上寻找解决方案,但没有成功。我需要一个cordova插件或任何其他方式来获得手机支架所采取的步骤。我找到了ionic-native的计步器,但它仅在打开或至少运行应用程序时对步数进行计数,并且还会在应用程序关闭时重新开始计数。
我还找到了Health插件,但要使其在android设备上运行,似乎需要付出很多努力(例如,用户需要下载Google Fitness应用程序并登录该应用程序等)。
即使在离子应用程序未运行时,没有人有明确的解决方案来计算步骤吗? (我在iOS和android上都需要它,但是如果我需要以两种方式(每种方式都不同)来实现,这不是问题。)
预先感谢您, 一个非常失望的Googler。 :/
答案 0 :(得分:3)
对于离子来说,这是一个非常困难的问题。 您正在寻找的是始终运行的后台服务。不幸的是,没有直接的方法可以在Ionic中进行后台服务。
为什么?因为您的应用是用Javascript编写的,并且您的代码在具有Webview的Activity中运行。退出应用后,该应用就会被暂停。
这可以通过使用离子插件Ionic Native Background Mode来避免。此插件可帮助您的应用保持关闭状态(在后台),即使用户将其关闭。因此,结合使用背景模式和计步器,即使应用已关闭(并推入背景模式),您也可以跟踪步数。但请注意,这意味着您的应用程序在技术上仍在运行,这意味着在Android用户中将收到一条消息,指出该应用程序在后台执行繁重的任务。在iOS上,这通常会导致该应用被应用商店拒绝。
存储步骤:要存储步骤,应使用Ionic Native Storage Plugin。即使应用程序关闭,这也会保留数据。
Android可能只有一个选项:使用Android后台服务,这可以帮助使应用程序作为服务在后台保持打开状态,仅执行特定任务。 iOS是一个完全不同的问题:如果应用程序使用的是voip,音频,位置,书报摊,则它们只能在后台运行。即使那样,他们也不会完全自由地做任何事情。
希望这会有所帮助,即使这不是好消息。