18

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

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

4

1 回答 1

24

这不是一个错误,这是一个功能。会话 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应该允许您这样做,但我发现并非总是如此。

于 2011-09-12T16:09:11.570 回答