注销后,"apple-mobile-web-app-capable"站点切换到Mobile Safari

kgx*_*kgx 4 session mobile-safari ios iphone-standalone-web-app

在iOS全屏模式下运行移动网站时,使用"apple-mobile-web-app-capable"元标记,我使用AJAX和同步页面请求的组合,包括重定向,在用户登录时成功.

但是,当用户注销并且会话被销毁时,iOS设备将退出全屏模式并在Mobile Safari窗口中打开登录页面.

以下是一系列常见事件:

  1. 用户单击主屏幕上的按钮以iOS全屏模式启动移动网站
  2. 服务器将用户重定向到登录页面进行身份验证(仍在全屏显示)
  3. 用户登录,并重定向回移动房屋(仍在全屏显示)
  4. 用户通过GET和POST执行各种操作,有些使用AJAX,有些则没有(仍在全屏)
  5. 用户点击注销按钮,该按钮会破坏会话并重定向回登录页面
  6. 移动Safari窗口将打开以再次呈现登录页面

我在注销成功时尝试了301,302和303重定向,似乎没有任何改变这种行为.它似乎与用户在全屏模式下运行时的会话结束有关.我认为这不重要,但安全机制是通过在Tomcat上运行的Spring Security实现的.

有什么方法可以防止这种行为吗?我不想在注销时使用location.href客户端重定向.

Mii*_*Jim 6

您可以使用jQuery的事件委派取消链接默认行为,以便为页面上的所有链接分配单个顶级事件处理程序.当检测到点击事件时,我们取消默认行为(即在移动版Safari中打开),然后手动更改窗口的位置.此方法允许在不破坏iPhone独立应用程序体验的情况下更改页面.

http://www.bennadel.com/blog/2302-Preventing-Links-In-Standalone-iPhone-Applications-From-Opening-In-Mobile-Safari.htm

我之前的印象是,任何非ajax/javascript导航都会导致应用程序跳入safari以提供页面服务