【发布时间】:2011-09-07 14:27:05
【问题描述】:
适用于 iPhone 的 XMPPFramework 功能强大。我已经启动并运行了,但是如何在后台保持连接超过 10 分钟?我将不胜感激有关如何完成此操作的更多文档/操作方法。
所以用例简单而常见:Joe 在线并在 iPhone 聊天应用程序中。他离开聊天应用程序,去 Safari,玩游戏,看电影,做其他事情 3 小时(或更长时间)。乔想在那段时间继续接收消息。
示例应用程序允许 Joe 在后台接收本地通知,但似乎只有 10 分钟。这是相关的代码(我认为)。谢谢!
为了帮助其他人,甚至达到这一点,您需要将 xmppstream 属性 enableBackgroundingSocket 设置为 YES(它在您应该复制的 iphoneXMPP 示例项目中为您完成)和 appname-info.plist(即, iosChat-info-plist) 文件,您需要添加一个新的键/值对。您应该右键单击某处并“添加行”。您应该选择键“所需的背景模式”,然后输入“voip”。 Xcode 会在您按下回车后检测到您的意思是“App 提供 IP 语音服务”。这可以让您在后台保持聊天应用程序打开 10 分钟(我认为)。但是我们想要无限期,我怀疑答案就在下面的方法中。我只是应该在这个方法中“重新连接”还是什么,例如,[self connect](我有一个连接方法)?
- (void)applicationDidEnterBackground:(UIApplication *)application{
DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
if ([application respondsToSelector:@selector(setKeepAliveTimeout:handler:)])
{
[application setKeepAliveTimeout:600 handler:^{
DDLogVerbose(@"KeepAliveHandler");
// Do other keep alive stuff here.
}];
}}
【问题讨论】:
-
嗨,你是怎么做到的...?
标签: iphone ios background connection xmpp