Phonegap iOS 5.1 и localStorage

Я использовал localstorage для сохранения одного значения в своем приложении, которое работает с PhoneGap, но когда Apple выпустила новый iOS 5.1, мое приложение теперь не сохраняет значение.

Кто-нибудь знает, как решить эту проблему?

Большое спасибо!!!

Изменить: я поместил код, который использовал:

window.localStorage.setItem("login", $('#login').val());

Я использую его для сохранения значения, и я использую его для чтения значения:

function onDeviceReady() {
    var login = window.localStorage.getItem("login");

    if (login != null) {
        $('#login').val(login);
    }
}

Но когда я закрываю приложение, значения не сохраняются.

Ответ 1

В группе телефонных разговоров был большой поток, который говорил об этой проблеме. В основном это потому, что теперь они обрабатывают localStorage как временный элемент, который можно удалить в любой момент. Никогда не бойтесь, что на работе работают очень умные люди!

здесь поток - https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

здесь код - http://pastebin.com/5881768B

Ответ 2

В iOS 5 локальное хранилище по умолчанию было установлено Apple. В iOS 5.1 localstorage была сделана временная папка, которая может быть удалена ОС при любой задержке хранения. В iOS 6 localstorage была сделана необязательно постоянная папка с флагом в настройке.

Phonegap 2.0 нацелил iOS 5.1 и предоставил механизм плагинов для обеспечения устойчивости, хотя iOS этого не сделал.

С iOS 6 и телефоном 2.1 была сделана попытка использовать плагин только в том случае, если версия iOS равна 5.1 и возвращается к исходному механизму iOS для сохранения папки.

Однако есть ошибка с этим исправлением на iOS 6, где локальная папка удаляется в первый раз, данные сохраняются: https://issues.apache.org/jira/browse/CB-1535 В отчете об ошибке также есть исправление; однако пока не планируется входить в какую-либо из выпусков PhoneGap; поэтому вам придется вручную применить исправление.