在 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 中在后台即时处理网络事件的主要内容,如果未能解决你的问题,请参考以下文章

在一个事件中在后台触发本机 Firebase 多个通知

IOS 后台不断网处理

如何在 iOS 6 中在后台播放音频文件?

如何在 iOS 4 中在后台播放多个音频文件?

在任何时间点在 iOS7 或更高版本中在后台启动定位服务

在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies