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; поэтому вам придется вручную применить исправление.