我们正处于规划移动应用程序的早期阶段。我们有一些特定于GEO功能和能力的需求。
我们希望创建一个混合体,但是,据我所知,这可能无法满足以下所有要求。
假设用户已向应用程序提供了正确的通知权限:
客户正在前台运行该应用程序:
在某些客户端操作时,GEO位置的设备通知服务器 (客户执行一些将数据发送到服务器的操作,我们是否可以包含当前的GEO位置?)
设备每隔 n 分钟发送当前GEO位置的ping。
发生业务事件,服务器由于其GEO位置而向设备发送消息(服务器向GEO附近的一个或多个应用程序发送消息
客户未在前台运行应用程序
每隔 n 分钟,GEO位置的设备通知服务器。 (服务器想知道设备的大致位置,以确定是否向其发送了附近事件的服务器通知)
服务器在设备未运行时由于其GEO位置而向设备发送消息。 (服务器由于其GEO位置而向设备发送通知消息。我了解如果应用程序未运行,这将作为应用程序警报进入操作系统,然后用户将单击该应用程序以运行应用程序。前景)
目前我的主要关注点是iOS,但我对Android功能感兴趣。
我没有移动开发经验。我们正在整理功能规范并尝试确定功能集的可行性。
我们的绝大多数应用程序都是简单的设备和服务器之间的客户端数据交互,混合会很好。但是,我们的客户没有按照我的要求运行GEO要求。是否有可能创建一个小型iOS应用程序来处理混合动力不能解决的问题?如果是这样,这些应用程序可以打包在一起还是单独安装?
修改 假设用户已正确配置设备,即设备GPS已打开且能够接收通知等,核心问题是设备是否可以在应用程序运行时每隔 n 分钟通知服务器其GEO位置,然后相同的问题与应用程序关闭? 这在本地/混合之间是否存在显着差异。
对于iOS,当应用程序位于“应用程序托盘”时,该应用程序仍被视为正在运行?或者,一旦应用程序不在前台,它就会被有效关闭?
谢谢
答案 0 :(得分:0)
首先,如果客户关闭了GPS,就无法获得客户的GEO。
我认为在阅读完您的要求后,您需要使用PhoneGap才能使其正常工作(如果您需要混合应用程序)。读:
Do hybrid mobile apps support Push Notifications?
在iOS上,您不需要并且您不能有任何额外的测量以确保它们是开放的。你唯一能做的就是注意用户“你的GPS没有运行”并要求他们打开它。 关于通知:您只能使用Apple提供的通知中心,如果您只是想在iOS上开发,这是一项非常简单的任务。
在Android上,情况有所不同。在最新版本的Android上,您无法在后台打开GPS,但您可以在旧版本中阅读:
因此,您最好显示用户设置屏幕,要求他们打开GPS。
关于通知:由于某些设备上未安装Google服务,因此不建议使用Google GCM。第三方推送服务是一个不错的选择,如urbanairship
。
关于后台任务:
在Android中你可以运行这个任务背景,在iOS中它也可以像Endomondo
那样。但它一直不稳定,因为如果用户进程达到内存限制系统可能会终止你的进程以释放内存。这可能发生在iOS和iOS上。机器人。