iPhone / iPad - cookie браузера Safari не сохраняется при завершении работы приложения - PullRequest
0 голосов
/ 21 мая 2019

На 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

Баннерное сообщение - перед удалением куки: Before Cookie Drop Banner

Баннерное сообщение - после удаления "MyCookie": After Cookie Drop Banner

Приведенная выше страница в основном добавляет или удаляет файл cookie под названием «MyCookie», когда вы нажимаете на кнопку. Когда печенье будет удалено, и вы обновитесь, вы увидите «Cookie сброшено!» баннер последовательно. Вы можете подтвердить, что «MyCookie» был удален, и срок его действия составляет 1 день, если вы подключаете iPhone к Mac и используете инструмент разработчика Safari.

Однако после того, как вы закроете приложение и перезапустите Safair, вы заметите, что «MyCookie» больше не доступен, и баннер по умолчанию возвращается к: «Нажмите кнопку, чтобы сохранить куки на 1 день».

Это происходит, даже если вы обновляете страницу несколько раз.

Я пытался обновить страницу более 7 раз или больше, затем убил приложение и перезапустил Safari, , а затем cookie, похоже, сохранился! Кажется, что это не количество обновлений, а, может быть, time based.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...