iPhone / iPad-终止应用程序

时间:2019-05-21 17:22:38

标签: javascript ios iphone cookies safari

在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();
})

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

横幅消息-删除Cookie之前: Before Cookie Drop Banner

横幅消息-删除“ MyCookie”后: After Cookie Drop Banner

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

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

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

我试图刷新页面7次以上,然后杀死该应用程序,然后重新启动Safari,然后,cookie似乎仍然存在! 似乎不是刷新的次数,而是基于时间的时间。

0 个答案:

没有答案