1

我有一个具有不同主题选项的 Phonegap 应用程序。为了使每个应用程序启动时主题选择保持不变,我想用 jQuery 设置一个 cookie。但是在浏览器(我测试的地方)中每次刷新后,标准主题又回来了。

你能给我一些提示吗?

这是我的应用程序开头的标记:

<body>
  <div class="theme1">
   <div id="page1">
   (...) // app markup
  <script src="js/jquery.js"></script>
  <script src="js/jquery.cookie.js"></script>
  <script>HERE GOES MY SCRIPT</script>
</body>

我在那里设置了标准主题。

现在,我要做的是,当我点击另一个主题(例如#theme8)时,这会发生在我的脚本中:

    $('#theme8').bind('click', function () {
     if ($('body > div').hasClass('theme8')) {
      // go back to the home screen
   } else {
        $('body > div').removeClass();
        $('body > div').addClass("theme8");
       // go back to the homescreen
   }
     $.cookie('theme_eight', 'applied');
   });

那是我的饼干:

var theme_eight = $.cookie('theme_eight');
if (theme_eight == 'applied') { 
    $('body > div').removeClass();
    $('body > div').addClass("theme8");
};

其他 7 个主题也是如此。那么这有什么问题呢?为什么我的主题选择不坚持?有没有更简洁的解决方案来实现这一目标?

4

1 回答 1

0

而不是 cookie 看看 Localstorage。它持久且比使用 cookie 更好

http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#localStorage

 function onDeviceReady() {
        window.localStorage.setItem("key", "value");
        var keyname = window.localStorage.key(i);
        // keyname is now equal to "key"
        var value = window.localStorage.getItem("key");
        // value is now equal to "value"
        window.localStorage.removeItem("key");
        window.localStorage.setItem("key2", "value2");
        window.localStorage.clear();
        // localStorage is now empty
    }
于 2013-05-09T04:20:07.763 回答