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

Javascript iPhone/iPad-终止应用程序时未保存Safari浏览器cookie,javascript,ios,iphone,cookies,safari,Javascript,Ios,Iphone,Cookies,Safari,在iPhone/iPad(iOS)上-使用Safari或Chrome浏览器,如果应用程序被终止(通过向上滑动应用程序关闭/终止),则不会将持久cookie(具有过期日期)保存到浏览器中 这是代码/cookie问题还是本机iOS/浏览器行为问题 在删除cookie后关闭应用程序的任何情况下都会发生此问题。 您还可以尝试刷新页面一次、两次或三次,然后终止页面。 下次打开应用程序时,您会注意到cookie从未保存 我已经为此创建了一个codepen.io: JavaScript: // find e

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

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

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

我已经为此创建了一个codepen.io:

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();
})
使用此调试模式在移动浏览器上查看代码:

横幅消息-删除cookie之前:

横幅消息-删除“MyCookie”后:

当你点击按钮时,上面的页面基本上会添加或删除一个名为“mycokie”的cookie。 当删除cookie并刷新时,您将看到“cookie已删除!”横幅。 如果您将iPhone连接到Mac并使用Safari的开发者工具,您可以确认“mycokie”已被删除,其有效期为1天

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

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

我尝试刷新页面7次以上,然后关闭应用程序,重新启动Safari,然后cookie似乎持续存在! 似乎不是刷新的次数,而是基于时间