Phonegap/cordova с jquery mobile localStorage когда-то получил неопределенное значение

Я занимаюсь разработкой Phonegap/Cordova с приложением JQuery Mobile для Android и IOS, и я хочу сохранить некоторые предпочтения пользователей с помощью localStorage.

скажем, "предупреждения", значения - "истина" или "ложь" (true, если пользователю требуется предупреждение и false для противоположного).

поэтому, когда устройство готово, я проверяю, является ли localStorage.alerts === undefine, и если да, я инициалирую localStorage.alerts с true.

например

if (window.localStorage.alerts === undefined) {
 window.localStorage.alerts = 'true';
 }

на странице настроек, когда пользователь проверяет или снимает флажок для этого параметра, я устанавливаю значение localStorage.alerts в значение "true" или "false".

например window.localStorage.alerts = (this.checked? 'true': 'false');

Проблема заключается в том, что пользователь уходит из приложения и запускает его снова, иногда я снова получаю undefine, даже инициализируя его в первый раз.

Я использую Cordova 3.4, и я тестирую его прямо сейчас на эмуляторе под управлением Android 4.1.2.

что не так, пожалуйста, помогите.

HTML:

сценарий:

receivedEvent: function () {
 $(document).ready(function () {
 alert('alerts: ' + localStorage.alerts);

 if (localStorage.alerts === undefined) localStorage.alerts = 'true';
}

благодаря,

1 ответ

Попробуйте это, сначала получите значение alert используя это

//check alert is empty
 if(window.localStorage.getItem('alert')==null){
 //set alert to true value
 window.localStorage.setItem('alert',true);


 }

Кроме того, если элемент localStorage не определен, его значение по умолчанию равно null. То же самое используется на странице настроек

//if checkbox is checked 
 if(cheked){
 window.localStorage.setItem('alert',true);
 }else{
 //not checked
 window.localStorage.setItem('alert',false);
 }

licensed under cc by-sa 3.0 with attribution.