计步器在背景中

我知道这已经被问了一百万次了,但对我来说却是不可能的。

所以我需要build立一个计步器的应用程序,并继续计数步骤事件,如果他们发送应用程序的背景超过10分钟。

客户端根本不想使用GPS,也不会播放无声的audio,因为苹果可能会拒绝。

有没有人有一个想法如何做到这一点?

客户端使用Runtastic计步器应用程序作为参考,我一直在分析它,它不使用,也没有位置,也没有音乐,并在后台运行超过10分钟。

任何线索? 这样做真的是不可能的吗? Runtastic的人可能会认同苹果使用一些秘密API让它在后台运行吗?

我看着Runtastic计步器,它在Info.plist文件中有以下内容:

 <key>UIBackgroundModes</key> <array> <string>audio</string> <string>external-accessory</string> </array> 

所以基本上,他们做audio技巧,他们声称与外部配件绑定。

我讨厌陈述这个显而易见的问题,但是你的问题似乎是“这是规则,但是我不想跟随他们,我怎样绕过它们? 答案似乎是:“添加function到您的应用程序,直到您符合其中一个标准。” 从文档:

在iOS中,只有特定的应用程序types才能在后台运行:

  • 在后台播放可听内容的应用,例如音乐播放器应用
  • 随时向用户通知其位置的应用,例如导航应用
  • 支持网际协议语音(VoIP)的应用
  • 报亭应用程序,需要下载和处理新的内容
  • 从外部附件获得定期更新的应用程序

因此,将这些function之一添加到您的应用程序。 每走一英里,就添加一个设置,发出祝贺声。 保持默认closures。 这应该符合您的audio播放豁免条件。 有一个选项来捕获位置数据,以标记用户走过1000英里时的位置。 在默认情况下closures该function。 这应符合位置标准。 添加一个function,从RSS提要下载励志Haiku,或从runnersworld.com头条新闻。 这可能会让你进入新内容的原因。 这并不难。 只要想出一些微不足道的十行代码function就可以让你入门。 动用你的想象力。

您可以查看关于声明您的应用程序支持的后台任务的Apple文档 。 您也可以查看本教程中关于使用背景模式的信息。

如果你有一个服务器端,你可以避免在后台运行你的应用程序本身,通过发送一个无声的推动,并唤醒你的应用程序只是为了报告的步骤数。

您可以注册无声推送,而无需用户确认推送消息,因为他们没有看到它们。