gpt4 book ai didi

iphone - 如何在后台保持 iphone ios xmpp 连接?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:50 26 4
gpt4 key购买 nike

适用于 iPhone 的 XMPPFramework 功能强大。我已经启动并运行了,但是如何在后台保持连接 10 分钟以上?如果能提供更多有关如何实现此目的的文档/操作方法,我将不胜感激。

所以用例简单且常见:Joe 在线并在 iPhone 聊天应用程序中。他离开聊天应用程序并转到 Safari、玩游戏、看电影并做其他事情 3 小时(或更长时间)。 Joe 希望在那段时间继续接收消息。

示例应用允许 Joe 在后台接收本地通知,但似乎只有 10 分钟。这是相关代码(我认为)。谢谢!

为了帮助其他人,甚至达到这一点,您需要将 xmppstream 属性 enableBackgroundingSocket 设置为 YES(它已在您应该复制的 iphoneXMPP 示例项目中为您完成)和 appname-info.plist(即, iosChat-info-plist) 文件,您需要添加一个新的键/值对。您应该右键单击某处并“添加行”。您应该选择“required background modes”键,然后输入“voip”。在您按下回车键后,Xcode 会检测到您的意思是“App provides Voice over IP services”。这使您有 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.
}];
}}

最佳答案

10 分钟是 iOS 允许您保持连接的大概时间。你可以另请查看 [app beginBackgroundTaskWithExpirationHandler],这将允许您请求更多时间来完成任务。为了保持 100% 连接,您将需要向 info.plist 添加 voip、音频或位置标记(即 UIBackgroundModes)。

除非您添加其中一个标签,否则背景将不起作用。另外,添加一个标签将允许您保持连接,但如果您要提交到 App Store,实际标签必须有效。如果没有真正的用例,Apple 将拒绝该应用程序。

要在没有标签的情况下保持更长时间的连接,您将需要使用某种类型的服务器,它会保持连接,然后使用推送通知来传递消息。

关于iphone - 如何在后台保持 iphone ios xmpp 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com