1

在 iOS 应用程序(通常在免费 WiFi 区域、酒店等中)中处理 WiFi 身份验证页面的最佳方式是什么,例如在 Settings.app 中(当用户需要进行身份验证时在模式中显示 Web 视图)?我对自定义解决方案有一些想法,例如检查重定向、内容类型,然后向用户显示 Web 视图,但想知道是否已经实现了预先存在的解决方案。

背景:

支持 iOS 5+

通过 AFNetworking 路由的所有网络请求

4

1 回答 1

2

我认为你的直觉很好。你应该至少做四件事:

  1. 使用 AFNetworkingsetRedirectResponseBlock并确定requestURL 何时与您想要的域不同。

  2. 在您的setCompletionBlockWithSuccess:failure:处理程序块中,检测由不在 2xx 范围内的状态代码导致的错误。

  3. 您可能还应该setWillSendRequestForAuthenticationChallengeBlock在其中检测到意外的身份验证挑战。

  4. 您可能还想使用AFNetworkReachabilityManager(基于 Apple 的可达性示例)来确定连接类型(例如,识别当前没有任何 WiFi 连接)。

显然,如果 WiFi 热点需要 WPA2/WPA/WEP 密码才能连接到热点(与没有 WPA2/WPA/WEP 身份验证的热点相反,而是身份验证是质询-响应或一些 HTML-基于身份验证),对此您无能为力,因为据 AFNetworking 所知,您根本没有 WiFi 连接(在这种情况下,上面列出的第四种技术可能会提供信息)。但是许多(大多数?)热点不需要任何密码来连接,而是将您重定向到基于 HTML 的登录页面,在这种情况下,上述前三种技术可能会有所帮助。

据我所知,你必须自己实现这个逻辑。

于 2013-10-03T18:01:37.580 回答