如何挂钩 ios 连接更改

Posted

技术标签:

【中文标题】如何挂钩 ios 连接更改【英文标题】:how to hook ios connection changes 【发布时间】:2013-05-28 02:58:56 【问题描述】:

我正在做一个 VOIP 项目。

我的应用程序使用可达性在连接更改时进行侦听并重新注册到 SIP SERVER。应用在前台时一切正常。

但是当我的应用程序进入后台时,它无法捕捉到连接变化。至少 10 分钟后(当 keepAlive 运行时)我的应用可以再次检查连接。

我打算使用私有框架和移动基板查看连接更改(丢失 wifi、3G 更改为 wifi、wifi 更改为 3G……)。我尝试了很多方法,但还没有找到有效的方法。

有谁知道连接改变时会调用哪个方法?

谢谢

【问题讨论】:

你看过Apple提供的Reachability例子吗?这几乎可以解决您捕获连接更改的问题:developer.apple.com/library/ios/samplecode/Reachability/…。您还应该阅读实现 VoIP 应用程序的提示,以使您的应用程序即使在后台也能保持与 SIP 服务器的持久连接:developer.apple.com/library/ios/documentation/iphone/conceptual/… 【参考方案1】:

我认为只有 Reachability 类对这个更好,即使苹果使用这个类作为他的代码,请在你找到的这个代码中看到这个 Link。你回答了一些如何

【讨论】:

在后台没有可达性。【参考方案2】:

我从遇到类似情况的人那里发现了一个问题:

How to get Reachability Notifications in iOS in Background when dropping Wi-Fi network?

希望这会有所帮助。

【讨论】:

【参考方案3】:

确保您的应用已设置为在后台进行 VoIP。在您的 Info.plist 文件中。添加以下键值对:

另请参阅:https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

【讨论】:

以上是关于如何挂钩 ios 连接更改的主要内容,如果未能解决你的问题,请参考以下文章

仅当输入中的所有元素都更改时,如何使 useEffect 挂钩调用提供的效果?

如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?

Fuel UX - 挂钩向导的更改事件

更改键盘挂钩回调中的键盘布局

Git 预提交挂钩:更改/添加的文件

更改输入的状态会延迟一个字符(useState 挂钩)