【问题标题】:iOS Full Screen Web App drops cookies?iOS 全屏 Web 应用会丢弃 cookie?
【发布时间】:2011-08-16 11:31:13
【问题描述】:

我体验过,当您启动/退出保存到仪表板(全屏模式)的网络应用程序时,iOS4 会丢弃 cookie。

这是真的吗?有解决方法吗?

【问题讨论】:

    标签: ios mobile cookies iphone-standalone-web-app


    【解决方案1】:

    这不是错误,而是功能。会话 cookie(即生命周期为 0 的 cookie)在浏览器会话结束时被删除 - 对于全屏网络应用程序,一旦您离开网络应用程序,就会发生这种情况。如果您希望它们持续存在,只需将您的 cookie 生命周期设置为大于默认值 0 的值(我使用 1 年)。

    现在您的问题可能是:如何设置我的 cookie 生命周期?假设您使用的是 PHP,那么这段代码将是:

    $lifetime = 31536000; // one year 
    setcookie($varName,$varValue,time()+$lifetime); 
    

    如果您使用 PHP 会话,则必须重写 cookie 以添加大于 0 的生存期:

    setcookie(session_name(),session_id(),time()+$lifetime);
    

    通常,您不必为了更改默认生存期而重写会话 cookie,因为函数 session_set_cookie_params 应该允许您这样做,但我发现并非总是如此。

    【讨论】:

    • 哇,非常感谢!!我已经研究了好几天了!我什至尝试将会话 ID 保存在本地存储中,并在应用程序再次启动时将其发送回服务器,但这不起作用。再次感谢!
    • @KPM 但您不认为这会导致严重的安全问题吗?
    • 如果您担心安全性,则无需将过期时间设置为一年 - 仅在用户需要时设置 - 也就是比平均使用时间长一点。我们使用它,因此当用户拨打电话或发短信并关闭 web 应用程序时,他们可以退回到其中而不必登录......但如果它关闭了一个小时,例如,他们需要登录。
    猜你喜欢
    • 2019-10-03
    • 2019-04-30
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2012-06-05
    • 2013-11-23
    • 2019-12-09
    相关资源
    最近更新 更多