如何挂钩 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 挂钩调用提供的效果?