1

我们正处于规划移动应用程序的早期阶段。我们有一些特定于 GEO 功能和能力的需求。

我们的愿望是创建一个混合体,但是,我知道这可能无法满足以下所有要求。

假设用户已将正确的通知权限授予应用程序:

客户在前台运行应用程序:

  1. 设备在某些客户端操作时通知服务器 GEO 位置 (客户执行一些将数据发送到服务器的操作,我们可以包括当前 GEO 位置吗?)

  2. 设备每n分钟发送一次当前 GEO 位置的 ping。

  3. 发生业务事件,服务器因其 GEO 位置而向设备发送消息(服务器向 GEO 附近的一个或多个应用程序发送消息

客户未在前台运行应用程序

  1. 设备每n分钟通知服务器一次 GEO 位置。(服务器想知道设备的大致位置,以确定是否向其发送了服务器附近事件的通知)

  2. 服务器在设备未运行时由于其 GEO 位置而向设备发送消息。(由于其 GEO 位置,服务器向设备发送通知消息。我知道如果应用程序未运行,这将作为应用程序警报发送到操作系统,然后用户将单击以在前台运行应用程序)

目前我的主要关注点是 iOS,但我对上述方面的 Android 功能感兴趣。

我没有移动开发经验。我们正在整理功能规范并尝试确定功能集的可行性。

我们绝大多数的应用都是简单的客户端设备和服务器之间的数据交互,混合就可以了。但是,让我担心的是我们的客户没有运行 GEO 要求。是否有可能创建一个小型 iOS 应用程序来处理混合动力无法处理的事情?如果是这样,这些应用程序可以打包在一起还是单独安装?

编辑: 假设用户已正确配置设备,即设备 GPS 已打开并能够接收通知等。核心问题是设备是否可以在应用程序运行时每n分钟通知服务器其 GEO 位置,然后与相同的问题应用程序关闭?这在原生/混合之间是否有显着差异。

对于 iOS,当应用程序位于“应用程序托盘”中时,该应用程序是否仍被视为正在运行?或者,一旦应用程序不在前台,它就会被有效地关闭?

谢谢

4

1 回答 1

0

首先,如果客户关闭 GPS,您将无法获得客户的 GEO。

我认为在阅读了您的要求后,您需要 PhoneGap 才能使其工作(如果您想要混合应用程序)。读:

混合移动应用程序是否支持推送通知?

在 iOS 上,您不需要也没有任何额外的措施来确保它们是开放的。您唯一能做的就是通知用户“您的 GPS 没有运行”并要求他们打开它。关于通知:你只能使用苹果提供的通知中心,如果你只是想在iOS上开发,这很简单。

在 Android 上,情况有些不同。在最新版本的 Android 上,您无法在后台打开 GPS,但您可以在旧版本中阅读以下内容:

关闭 GPS 安卓

所以你最好显示你的用户设置屏幕,让他们打开 GPS。

关于通知:不推荐使用谷歌 GCM,因为某些设备上没有安装谷歌服务。第三方推送服务是一个不错的选择,例如urbanairship

关于后台任务:

在 Android 中,您可以运行此任务后台,在 iOS 中也可以像Endomondo之前那样运行。但它一直不稳定,因为如果用户进程达到内存限制,系统可能会杀死你的进程以释放内存。这可能发生在 iOS 和 Android 上。

于 2013-04-16T18:00:39.507 回答