iOS:在Safari中打开欢迎页面,而不是CNA(后验证)

Tom*_*Tom 7 mobile-safari ios captivenetwork

我正在运行一个强制网络门户,目标受众只是移动设备.我想在CNA中进行身份验证向用户打开"欢迎页面" .此页面应在(移动)Safari中打开,而不是在CNA中打开,因为它包含在有限的CNA环境中不起作用的交互式元素.

我以前见过这个在其他门户网站工作,但我不知道他们是怎么做的,也不知道经过长时间的研究后甚至是多少.

有的是:

  • 强制门户网站/专属网络正在运行
  • 用户连接获取弹出窗口(CNA)中显示的启动页面
  • 由于我不需要身份验证,此时它们已连接,右上角的按钮显示"OK"

想要的是:

  • 此启动页面上的链接或按钮可打开Safari窗口

要么

  • 一些JavaScript,重定向,以及在CNA关闭时打开Safari窗口的任何其他内容.

到目前为止我找不到任何东西(例如使用target ="_ system").有谁知道这些酒店和其他门户网站如何设法做到这一点,做到了吗?

3pi*_*pic 5

您无法使操作系统(OS X或iOS)打开Safari.当iOSX检测到有围墙的花园(强制门户)时,它会启动CNA.那是.

CNA≠Safari.让我们试试<a href="..." target="_blank">test</a> 任何尝试打开另一个CNA窗口失败.

让我们尝试<a href="..." target="_system">test</a> 任何尝试打开Safari失败(_system仅适用于iOS应用程序中的Safari,Mail和Safari webviews)

对我来说:回答=不可能.

但我想知道:是否有人已经看过这种现象.你有没有看过一个在呈现CNA窗口后自动启动的野生动物园页面?

  • 更新:我看到的(我今天再次检查)不是自动的.但是当您单击CNA中的链接时,它将在Safari中打开.这对我来说完全没问题,但我不能复制它. (2认同)

Ian*_*ski 4

秘诀在于向 iOS 客户端发送 HTML 响应,其中<body>包含仅包含单词“Success”的元素。iOS CNA(强制网络助手)期望返回类似http://www.apple.com/library/test/success.html的内容。

\n

例如:

\n
<html>\n  <head>\n    <title>Success</title>\n  </head>\n  <body>\n    Success\n  </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n

您可以使用 JavaScript 重定向 iOS CNA 窗口:

\n
<script type="text/javascript">\n  window.location.href = "yourdomain.com/welcome.html";\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n

style此外,您可以通过使用标签上的属性将正文文本更改为白色来隐藏“成功”消息<body>。iOS CNA 应用程序似乎并没有寻找完全符合 Apple 的页面success.html;它似乎只是在寻找<body>包含“成功”一词的元素。

\n

我的用例

\n

我正在使用的强制门户要求用户同意服务条款。移动设备将使用其 CNA 检测强制门户,并打开带有强制门户登录页面的操作系统级浏览器窗口。

\n

当用户单击“同意并连接”时,会生成一个表单POST,用于在强制门户设备上执行其 MAC 授权。

\n

网络服务器返回我自己的success.html白色文本,JavaScript 重定向到用户请求的 URL\xe2\x80\x94(对于用户使用移动浏览器手动浏览网站的情况)\xe2\x80\x94 或品牌的网站欢迎页面。

\n

长话短说:

\n
    \n
  1. 用户连接到强制门户
  2. \n
  3. 移动设备检测到强制门户
  4. \n
  5. 移动 CNA 加载强制门户登录页面
  6. \n
  7. 用户单击“同意并连接”,POST向我的网络服务器发出请求以执行身份验证
  8. \n
  9. HTTP 302 重定向是从POST指向success.html我的网络服务器上的 URL 返回的,该元素后面包含一个 JavScript 重定向<body>这会触发 iOS CNA Web 视图来检测它是否已成功连接到网络
  10. \n
  11. CNA 登录窗口已重定向至我的品牌welcome.html
  12. \n
  13. CNA Web 视图窗口在 Android 中自动关闭,或者用户可以单击 iOS CNA Web 视图窗口上的“完成”将其关闭
  14. \n
\n

  • 这是否会在 Safari 或 CNA 中打开welcome.html?我需要它在 Safari 中打开,因为我在门户中提供的功能是允许用户从图像库下载图像,而 CNA 不允许这样做。 (3认同)