iPhone / iPad-终止应用程序时未保存Safari浏览器cookie

问题描述 投票:0回答:1

在iPhone / iPad(iOS)上-使用Safari或Chrome浏览器,如果终止应用程序(通过滑动应用程序将其关闭/杀死),则持久性Cookie(具有到期日期)不会保存到浏览器中。

这是代码/ cookie问题还是本机iOS /浏览器行为问题?

在删除Cookie后关闭应用程序的任何情况下,都会发生此问题。您也可以尝试刷新页面一次,两次或三次,然后终止页面。下次打开该应用程序时,您会注意到Cookie从未保存过。

我为此创建了一个codepen.io:https://codepen.io/jussjosh/pen/KLyqxr

JavaScript:

// find elements
var beforeCookie = $("#beforeCookie")
var afterCookie = $("#afterCookie")
var btnAdd = $("#btnAdd")
var btnDel = $("#btnDel")

// Cookie Exists
if (document.cookie.match(/MyCookie/)) {
  afterCookie.show();
} else {
  beforeCookie.show();
}

// Add/Delete Cookie
function dropCookie(name, expire) {
  var cookieName = name;
  var days = expire;
  var date = new Date();
  date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  var expires = "expires=" + date.toUTCString();
  document.cookie = cookieName + "=1; " + expires + ";domain=; path=/";
}

// Button: Add Cookie
btnAdd.on("click", function(){
  dropCookie('MyCookie', 1);
  beforeCookie.hide();
  afterCookie.show();
})

// Button: Delete Cookie
btnDel.on("click", function(){
  dropCookie('MyCookie', -100);
  beforeCookie.show();
  afterCookie.hide();
})

使用此调试模式在移动浏览器上查看代码:https://s.codepen.io/jussjosh/debug/KLyqxr/WPkLYNqpxyOM

横幅消息-删除Cookie之前:“在放置Cookie横幅之前”

横幅消息-删除“ MyCookie”后:“在Cookie放置横幅后”>

上面的页面基本上是在单击按钮时添加或删除名为“ MyCookie”的cookie。删除Cookie并刷新后,您会看到“ Cookie掉了!”横幅一致。如果将iPhone连接到Mac并使用Safari的开发人员工具,则可以确认已删除“ MyCookie”,并且有效期为1天。

但是,在终止应用程序并重新启动Safair后,您会注意到“ MyCookie”不再可用,横幅默认返回到:“单击按钮将cookie保存1天”。

即使多次刷新页面也会发生这种情况。

我试图刷新页面超过7次以上,然后杀死该应用程序,然后重新启动Safari,然后

cookie似乎仍然存在!似乎不是刷新的次数,但可能是基于time的。

在iPhone / iPad(iOS)上-使用Safari或Chrome浏览器,如果终止应用程序(通过滑动应用程序将其关闭/杀死),则持久性Cookie(具有到期日期)不会保存到浏览器中。是...

javascript ios iphone cookies safari
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.