Хранить Cookie в iPhone LocalStorage - PullRequest
       10

Хранить Cookie в iPhone LocalStorage

1 голос
/ 28 февраля 2012

Я прочитал, что единственный способ заставить мое веб-приложение php / js не сбрасываться каждый раз, когда посетитель нажимает на иконку, - это помещать куки в локальное хранилище.Я прочитал Проблемы с использованием LocalStorage для хранения файлов cookie в мобильном веб-приложении , у которых возникла та же проблема, но нет четкого решения или, по крайней мере, мне не удалось заставить его работать.Я не могу понять, как сделать что-то оттуда.Кто-нибудь реализовал что-то, для чего он мог бы показать код.Спасибо

1 Ответ

0 голосов
/ 24 июня 2012

Если под сбросом вы подразумеваете переход на стартовую страницу (или, точнее, на страницу, на которой пользователь решает загрузить приложение), это может быть достигнуто несколькими способами, cookie-файлы и localStorage - это два приятныхи простые способы.Поскольку я уже храню множество данных в localStorage в своем веб-приложении гостевого списка, я решил использовать файлы cookie для этого. Вот как я это сделал:

(NB Я использую плагин jquery cookie, поэтому, если вы собираетесь скопировать, вставить этот код, убедитесь, что сначала внедрили плагинПриступим к делу)

На каждой отдельной странице установите / перезапишите файл cookie «userLocaltion» с «текущим местоположением»:

$.cookie("userLocation", "addGuest", { expires: 1 }); //persists for 1 day

Аналогично, вызовите функциюuserPreviousLocaltion () в верхней части каждой страницы и создайте функцию с помощью регистра переключателя (показано ниже).Поскольку большинство моих подстраниц находятся в моем index.html, я запускаю нажатие кнопки, а не отправляю пользователя на отдельные страницы:

function userPreviousLocaltion() {
var userLocation = $.cookie("userLocation");

switch (userLocation) {
case "addGuest":
  $('#addGuestFooterWrap').trigger('click');
  break;
case "stats":
  $('#statsFooterWrap').trigger('click');
  break;
case "utilities":
  $('#settingsFooterWrap').trigger('click');
  break;
case "bookings":
  $('#bookingsFooterWrap').trigger('click');
  break;
case "guestlist":
  window.location = "guestlist.html";
  break;
default:
    console.log("do nothing, stay on first page.");
  }

}

Надеюсь, что это помогло!

...