在 iOS 4.2.1 中在后台即时处理网络事件
Posted
技术标签:
【中文标题】在 iOS 4.2.1 中在后台即时处理网络事件【英文标题】:Handling network events on-the-fly while in background in iOS 4.2.1 【发布时间】:2011-08-30 12:30:38 【问题描述】:当应用程序在后台运行时,ios 4.2.1 中是否有任何方法可以即时处理网络事件?
更具体地说,这里有两个例子:
-
在前台有另一个应用程序时接收 VoIP 呼叫
当另一个应用程序在前台时接收 XMPP 消息
似乎无法使用setKeepAliveTimeout:handler:
,因为最小延迟为 600 秒(10 分钟)。
【问题讨论】:
【参考方案1】:当您添加Required background modes
并将voip
添加到您的info.plist 时,您可以保持套接字打开。
这将允许您捕获任何来电,只需使用UILocalNotification
通知用户。
你不能真正为 IM 系统做这件事,因为它们不属于 Voip 类别。
【讨论】:
当我为一个 VoIP+IM 客户端研究这个时,Apple 的立场是“一旦你成为 voip,你就是 voip”。也就是说,如果您实际上是 VoIP 客户,他们通常不会严格要求您是否也使用该功能来管理 XMPP。然而,纯 IM 客户端需要在后台使用推送通知来接收其消息。 感谢您的回复,但我需要更具体的回复...在 iOS 4.3 上,我的应用程序会在消息传递时做出响应,但在 4.2.1 上 - 它仅在 keep-alive 处理程序上响应。 .. Verbs 之类的应用如何实现这种行为? @ChrisBallinger 我没有动词,但 Facebook Messenger 和 WhatsApp 使用推送通知的方式。以上是关于在 iOS 4.2.1 中在后台即时处理网络事件的主要内容,如果未能解决你的问题,请参考以下文章