Я пишу простое веб-приложение iPhone с помощью localStorage HTML5.
Тесты на устройстве 2G показывают, что данные сохранили использование localStorage, не сохраняется после того, как процесс Safari уничтожается, хотя открытые окна Safari помнят.
Данные также потеряны в случае, где я нахожусь на другом сайте на другом окне Safari, затем я изменяю окно туда, где веб-приложение в предмете показывают. Когда Safari загружает страницу, это автоматически обновляет страницу. Затем данные потеряны. Это - простой тестовый код:
<html>
<head>
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
</head>
<body>
<script>
alert("1:" + localStorage.getItem("test"));
localStorage.setItem("test", "123");
alert("2:" + localStorage.getItem("test"));
</script>
</body>
Насколько я понимаю, что данные должны сохраниться!
Кто-либо может пролить некоторый свет на это поведение? Что я должен сделать для получения персистентности работать?
Спасибо!
Tom.
Я попробовал ваш код на моем iPhone 3G и Safari на Windows, и он работает. Может быть, вы используете более старую версию Safari на своем iPhone?
Я думаю, что в iPhone Safari есть ошибка с локальным хранилищем. У меня такая же проблема, как и у вас: http://groups.google.com/group/phonegap/browse_thread/thread/746868e928aaba5c
По данным Apple ( https://developer.apple.com/library/archive /documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3), поддержка localStorage была добавлена в Safari 4.0.
Согласно Википедии ( https://en.wikipedia.org/wiki/Safari_version_history ), Safari 4.0 был добавлен в iPhone OS 3.0.
iPhone 2G не поставлялся с предустановленной ОС 3.0 или более поздней версии. Ваша версия ОС iPhone, скорее всего, слишком старая.