对于一个项目,我需要很多客户来订阅不同的硬件设备。在这个设置中,客户端是iOS -设备.硬件有点像覆盆子,但我认为这不重要。这种硬件设备如果测量某种信息,就会发送信号。这是一个罕见的事件,可能永远不会发生。
该应用程序的目的是警告用户,当某种事件出现在他感兴趣的地方。
我计划使用MQTT协议来实现这一点。
这就是我的问题所在。要使用MQTT,应用程序需要每隔几分钟发送一次PINGREQ,即使应用程序处于后台。此外,应用程序需要接收其订阅,并立即处理。
这就是我计划做的:
。。如所述,这里
我的问题是:苹果会允许这样做吗?我的应用不是VoIP应用。若否,是否有其他方法可供选择?
发布于 2015-01-26 11:41:13
如果Apple策略不允许您将MQTT客户端应用程序放在后台运行,那么解决方案应该是实现额外的push服务。
push服务订阅您的MQTT代理并向您的移动设备发送推送通知,这样无论它们是否运行了MQTT客户端应用程序,它们都会得到事件。
发布于 2016-03-14 04:53:27
是!当你使用VOIP时,苹果有可能拒绝你的应用程序(即使你的应用程序不是VOIP类型的应用程序)来保持应用程序的活力!我使用位置服务,这是一个适当的解决方案,以保持应用程序在后台模式下的活力。
询问使用位置服务的权限,即使应用程序处于后台模式&在获得允许回叫后,将您的位置管理器的期望精度设置为最坏的,距离过滤器为99999 (意味着如果用户从上次位置更新回拨超过99999米时,将通知您的应用程序)。
通过改变所需的精度和距离过滤器,您可以节省用户的电池消耗,否则您的应用程序将消耗大量的能源
这是一个适当的方法,使您的应用程序在后台连续运行超过2天(已经在我们的项目中使用)。
哈哈!在编码方面玩得开心:)
https://stackoverflow.com/questions/26762830
复制相似问题