【发布时间】:2014-09-18 02:58:10
【问题描述】:
我正在构建一个应用程序,用户可以在其中输入数据,同时在线和离线。 该数据必须与服务器同步。 如果用户在线,这不是一个真正的问题。 但是现在我需要发送用户在离线时输入的数据,在他连接到互联网的那一刻(例如当他离开飞机并且手机连接到网络时)。
我想到的当前解决方案是使用 iOS 和 Android 上可用的后台服务每 X 分钟轮询一次服务器以查看手机是否在线。 这对 Android 来说似乎不是太大的问题。 然而,iOs 似乎更难。 根据这篇文章iOS app upload data to server as soon as network is available,这是不可能的。但似乎 iOS 7 增加了新的后台功能,这可能使这个用例可行。我只是找不到任何好的例子或文档。
所以核心问题是,即使我的应用目前没有被使用(甚至可能自上次重启手机以来根本没有使用过),我如何才能检测到手机上线的事实?
【问题讨论】:
-
我想我很困惑。这个问题是安卓还是iOS?
-
这里是一个tutorial 用于 iOS7 中的后台获取,但这个后台获取调用仍然完全取决于 iOS,所以你不能有固定的时间间隔来触发 Web 服务。
-
实际上与两者有关。该功能需要跨平台,因此我需要两个平台的最佳策略方法。 iOS 所需的策略具有更高的优先级,因为我找不到有关如何处理此问题的任何信息。
-
谢谢@walle84 这似乎可以工作,唯一困扰我的是该功能显然是用于从服务器获取数据而不是用于将数据推送到服务器。它可能也可以用于推送,但是当这种情况发生时,您似乎没有太多控制权。
-
您如何使用推送通知向您的应用发送数据?另外,您如何连续访问服务器以获取数据?如果每隔几分钟或几小时,您可能应该重新考虑一下,因为这会耗尽大量电池,而苹果已经对电池的有效利用提出了担忧。
标签: android ios networking mobile connectivity