我认为这个标题已经足够说明问题了。我希望XMPPFramework
工作(像一个服务)在后台和接收消息,即使应用程序不处于活动状态。我设置了
xmppStream.enableBackgroundingOnSocket = YES;
但这里没有进展。应用程序进入后台,它仍然接收消息(并显示通知)几秒钟,但如果它处于非活动状态几秒钟(也空闲(没有传入消息)),它将不再在后台工作。我已经尝试日志记录,看到应用程序正在发送keep-alive数据包,在收到最后一条消息(最后一个活动)后几秒钟内,但如果没有活动几次,它停止发送keep-alive和应用程序将不会被通知和工作了。为了以防万一,我将"keep alive发送间隔"设置为5秒。
我真的很感谢你的快速帮助。
Thanks to lot
当你进入后台应用程序应该去xmpp离线,并编程你的服务器发送推送通知,当有消息,这将是一个电池和数据优化的方式。
可能与XMPP框架无关。
你希望你的应用程序在后台运行。你需要把它标记为后台应用程序。
查看:http://www.raywenderlich.com/29948/backgrounding-for-ios
最隐蔽的解决方案是告诉iOS你的应用是一个VOIP应用。
对于测试目的,您可以将"应用程序不运行在后台"设置为"否",并将"所需的后台模式"设置为"应用程序提供IP语音服务"。
这是在应用程序plist文件中完成的。
但是,如果没有真正提供VOIP服务,不确定苹果是否会批准你的申请。
希望这有帮助,Yaron