phonegap / cordova与jquery mobile localStorage有时会得到未定义的值

时间:2014-11-13 09:26:07

标签: jquery-mobile cordova local-storage

我正在使用适用于Android和IOS的JQuery Mobile应用程序开发Phonegap / Cordova,我想用localStorage存储一些用户首选项。

让我们说'提醒',值为'true'或'false'(如果用户需要提醒,则为true;如果相反,则为false)。

所以,当设备准备就绪时,我检查localStorage.alerts是否= = undefine,如果是,我使用true初始化localStorage.alerts。

e.g。

if (window.localStorage.alerts === undefined) {
         window.localStorage.alerts = 'true';
     }
当用户选中或取消选中此设置的复选框时,在设置页面中

我将localStorage.alerts的值设置为'true'或'false'。

e.g。 window.localStorage.alerts = (this.checked ? 'true' : 'false');

问题是当用户退出应用程序并再次启动时,即使我在第一次运行时启动它,有时我也会再次取消定义。

我正在使用Cordova 3.4,我现在在模拟器上运行Android 4.1.2进行测试。

有什么不对,请帮帮忙。

HTML:

<input type="checkbox" id="alerts" onchange="window.localStorage.alerts = (this.checked ? 'true' : 'false');" />

脚本:

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

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

感谢,

1 个答案:

答案 0 :(得分:0)

试试这个,首先使用此

获取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);
    }