HTML5 на iPhone Safari - данные, хранящиеся в localStorage, не всегда сохраняются. Зачем? - PullRequest
10 голосов
/ 15 апреля 2010

Я пишу простое веб-приложение для iPhone, используя HTML5 localStorage.
Тесты на устройстве 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>

Насколько я понимаю, данные должны сохраняться!
Кто-нибудь может пролить свет на это поведение? Что я должен сделать, чтобы настойчивость работала?

Спасибо!
Том.

Ответы [ 3 ]

2 голосов
/ 20 августа 2010

Согласно 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.

2G iPhone не поставляется с предустановленной ОС 3.0 или более поздней. Ваша версия iPhone OS скорее всего слишком старая.

1 голос
/ 05 июля 2010

Я думаю, что есть ошибка с локальным хранилищем в iPhone Safari. У меня похожая проблема, как у вас: http://groups.google.com/group/phonegap/browse_thread/thread/746868e928aaba5c

0 голосов
/ 19 мая 2010

Я попробовал ваш код на моем iPhone 3G и Safari на Windows, и он работает. Может быть, на вашем iPhone установлена ​​более старая версия Safari?

...