在iOS应用中处理互联网认证页面的最佳方式?

时间:2013-10-02 20:31:52

标签: ios afnetworking

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

背景

iOS 5+支持

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

1 个答案:

答案 0 :(得分:2)

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

  1. 使用AFNetworking的setRedirectResponseBlock并确定request网址与您预期的网址不同的时间。

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

  3. 您可能还应该有setWillSendRequestForAuthenticationChallengeBlock来检测意外的身份验证质询。

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

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

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