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

前言

路由器,认证服务器,手持无线终端。当通过手持无线设备连接到需要认证的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.用来增强用户体验的。

关于iPhone/iPad的iOS系统自动弹出认证窗口问题,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。