Cordova 3.6.x如何持久localStorage?

时间:2015-03-25 08:06:22

标签: cordova persistence local-storage phonegap-plugins

我很想知道在Cordova 3.6.x上持久的localStorage是什么?

存储应用程序的配置是否足够好?

如果我从AppStore / GooglePlay更新应用程序,它仍然保存用户收集的数据会怎样?

如果不是什么cordova插件,你建议我使用如果我想要使用cordova应用程序的持久和预先填充的数据?

提前致谢。

3 个答案:

答案 0 :(得分:0)

如果你没有违反任何限制,我不会发现会有问题。看一下有关限制的帖子:HTML5 localStorage size limit for subdomains

另外iOS 7 webview and localStorage persistence

您可以选择https://github.com/jcfant/cacheJS或使用Ionic或Angular:

答案 1 :(得分:0)

我已经看到很多关于本地存储的链接,遗憾的是还没有找到明确答案。我可以建议你一个数据库,SQLite wrapper plugin

这很简单,效果很好。希望它能满足您的所有要求,包括预先填充的数据库。

几个例子:

//Pre-populated database

//For Android & iOS (only): put the database file in the www directory and open the database like:

var db = window.sqlitePlugin.openDatabase({name: "my.db", createFromLocation: 1});

用法

// Wait for Cordova to load
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
function onDeviceReady() {
  var db = window.sqlitePlugin.openDatabase({name: "my.db"});

  db.transaction(function(tx) {
    tx.executeSql('DROP TABLE IF EXISTS test_table');
    tx.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)');

    // demonstrate PRAGMA:
    db.executeSql("pragma table_info (test_table);", [], function(res) {
      console.log("PRAGMA res: " + JSON.stringify(res));
    });

    tx.executeSql("INSERT INTO test_table (data, data_num) VALUES (?,?)", ["test", 100], function(tx, res) {
      console.log("insertId: " + res.insertId + " -- probably 1");
      console.log("rowsAffected: " + res.rowsAffected + " -- should be 1");

      db.transaction(function(tx) {
        tx.executeSql("select count(id) as cnt from test_table;", [], function(tx, res) {
          console.log("res.rows.length: " + res.rows.length + " -- should be 1");
          console.log("res.rows.item(0).cnt: " + res.rows.item(0).cnt + " -- should be 1");
        });
      });

    }, function(e) {
      console.log("ERROR: " + e.message);
    });
  });
}

您可以从文档中了解所有内容。

答案 2 :(得分:-1)

您可以使用cordova-plugin-nativestorage

用法:NativeStorage.setItem("key", "value", success, error);