На 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
Баннерное сообщение - перед удалением куки:
Баннерное сообщение - после удаления "MyCookie":
Приведенная выше страница в основном добавляет или удаляет файл cookie под названием «MyCookie», когда вы нажимаете на кнопку.
Когда печенье будет удалено, и вы обновитесь, вы увидите «Cookie сброшено!» баннер последовательно.
Вы можете подтвердить, что «MyCookie» был удален, и срок его действия составляет 1 день, если вы подключаете iPhone к Mac и используете инструмент разработчика Safari.
Однако после того, как вы закроете приложение и перезапустите Safair, вы заметите, что «MyCookie» больше не доступен, и баннер по умолчанию возвращается к:
«Нажмите кнопку, чтобы сохранить куки на 1 день».
Это происходит, даже если вы обновляете страницу несколько раз.
Я пытался обновить страницу более 7 раз или больше, затем убил приложение и перезапустил Safari, , а затем cookie, похоже, сохранился!
Кажется, что это не количество обновлений, а, может быть, time based.