目标 C - 从 WiFi 切换到 3G,反之亦然

Posted

技术标签:

【中文标题】目标 C - 从 WiFi 切换到 3G,反之亦然【英文标题】:Objective C - Switching from WiFi to 3G and vice versa 【发布时间】:2012-06-24 10:53:28 【问题描述】:

我正在开发一个使用网络的 iPhone 应用程序。 iPhone 通过 HTTP 请求与我的服务器通信,应该可以在 WiFi 和 3G 上运行。 我目前使用NSURLConnection initWithRequest 向我的服务器发送异步请求并获得响应(但我很快就会开始使用ASIHTTPRequest 库)

我不确定的一件事是,当用户设备从 WiFi 切换到 3G(反之亦然)时会发生什么?

我知道不能使用同一个连接,必须建立新的连接。 但是我需要做些什么来处理这种情况,还是NSURLConnection 会自动处理它? 例如,如果我发送了一个请求,并且在获得响应的过程中连接发生了变化,那么这个请求会发生什么?

我看到了 Apple 的 Reachability 示例代码,我知道我可以使用 Reachability 来检测网络变化,但不知道如何处理这些变化。

【问题讨论】:

【参考方案1】:

当连接从 3G 变为 WiFi 时,当前请求将导致失败状态,是的,您需要做一些事情来重新建立连接(重启、恢复等...)

话虽如此,我不确定,但我认为ASIHTTPRequest 有一种机制可以在您请求下载文件时解决这些问题

【讨论】:

以上是关于目标 C - 从 WiFi 切换到 3G,反之亦然的主要内容,如果未能解决你的问题,请参考以下文章

如何从 3G 和 2G/EDGE 反之切换?

将网络从 wifi 切换到 3g 时 Android/Xamarin.Android 休息客户端超时

如何处理 iPhone 中的网络切换?

Android:在应用程序中间切换 3G 到 WIFI = 失去网络连接

Android 应用程序在 WIFI 和 3G(无代理)上工作,但在 3G 上不工作(如果分配了代理和端口)

iPhone 3G / WiFi 连接