现在的位置: 首页 > 综合 > 正文

关于iPhone/iPad的iOS系统自动弹出认证窗口问题

2014年09月05日 ⁄ 综合 ⁄ 共 2247字 ⁄ 字号 评论关闭

前言

路由器,认证服务器,手持无线终端。当通过手持无线设备连接到需要认证的WiFi上,会自动弹出窗口,何解?为什么有的时候就不弹出窗口呢?怎么给商家一个合理的解释呢?

验证问题

通过在路由器上抓包来看弹出窗口的时候都发生了什么? 抓包方法如下http://blog.csdn.net/qianguozheng/article/details/32108093

当弹出认证窗口的时候都发生了什么?

当没有弹出认证窗口的时候,没有弹出认证窗口。

原理剖析

https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/Platform-SpecificNetworkingTechnologies/Platform-SpecificNetworkingTechnologies.html

Register for Captive Network Support

A captive network is a Wi-Fi network that doesn’t provide Internet access until the user performs some 
action, such as logging in, specifying payment, or agreeing to terms and conditions. Captive networks 
common in public areas, such as airports and hotels.

When a user joins a captive network, Captive Network Support typically provides a web sheet that allows 
the user to authenticate with the network. If your application registers the SSID of the captive network, 
however, the web sheet is suppressed, and the user can complete authentication in your application.

For more information, read CaptiveNetwork Reference

https://developer.apple.com/library/ios/documentation/SystemConfiguration/Reference/CaptiveNetworkRef/Reference/reference.html#//apple_ref/doc/uid/TP40009770-CH101-DontLinkElementID_4

Overview

The CaptiveNetwork programming interface allows an application to interact with Captive Network Support, 
the system component responsible for detecting networks that require user interaction before providing 
internet access. These networks are most commonly WiFi hotspots in public locations such as airports 
and hotels.

By calling the CNSetSupportedSSIDs function, an application can register a list of wireless network 
SSIDs with Captive Network Support, thereby assuming responsibility for authenticating with those 
networks. Typically when a user joins a captive network, Captive Network Support provides a web 
sheet that allows the user to authenticate with the network. If an application has registered the 
SSID of the captive network, however, the web sheet is suppressed, and the user can complete 
authentication in the appropriate application.

After a user performs authentication in the application that registered the SSID, the application 
should inform Captive Network Support of the result of the authentication with either the 
CNMarkPortalOnline function or the CNMarkPortalOffline function

总结

iOS是苹果的结晶啊,这是最大限度的提供用户良好的用户体验,做出的功能,但是并不是一个标准,所以遇到自己解释不了的问题,从原理上分析,从根本上解决问题,不要等到问题到了不可收拾的地步,才去想怎么办。

captive.apple.com 就是苹果的一个Server.用来增强用户体验的。

抱歉!评论已关闭.