处理iOS强制网络支持

时间:2012-08-28 00:10:48

标签: javascript ios

所以,我正在为酒店的公共热点建立一个访客互联网门户网站。这意味着门户网站通过网络访问网关(Nomadix)提供服务,该网关将所有传出流量重定向到门户网站页面。门户网站需要能够在浏览器上设置cookie,以便客户可以在空闲超时后自动重新登录。

问题:
iOS4 +和OS X(10.7+)设备具有称为强制网络支持的功能。此功能会持续扫描Wifi SSID,连接到它们,并卷曲http://www.apple.com/library/test/success.html以查看设备是否已连接到互联网。如果它没有得到成功响应,这些设备会弹出一个叫做强制网络门户的东西。此门户网站不是Safari Mobile的真实版本,您无法在此浏览器上保存Cookie。

我想对以下问题给出权威答案:

使用客户端javascript / markup可以吗?

A)在强制网络(弹出式)浏览器中保存cookie

B)防止强制网络浏览器首先弹出而不将Apple.com列入白名单

3 个答案:

答案 0 :(得分:7)

这对于sysadmin内容来说是StackExchange网络中的错误站点;您可以尝试ServerFault。根据我作为用户的经验,有一些WiFi门户可以管理没有cookie的重新认证;或许ServerFault可以帮助您找到这样的。

也就是说,在iOS客户端开发方面有一个可能的解决方案:CaptiveNetwork APIs允许第三方应用程序通知系统它承担了对特定SSID进行身份验证的责任,从而抑制了Web片。它可能不是一个理想的解决方案,因为它需要您的用户安装一个应用程序,但它就在那里。

答案 1 :(得分:2)

当检测到iOS设备时,您可以尝试在本地提供“http://www.apple.com/library/test/success.html”。这将使CNA不会弹出,然后用户可以通过移动safari登录,您可以在其中保存cookie。

答案 2 :(得分:0)

iOS 14有一个新的API,可用于强制门户。顺便说一句,Android supports it too