Cordova 3.6.x 如何持久化 localStorage?
How persistent localStorage with Cordova 3.6.x?
我很想知道 localStorage 在 Cordova 3 上的持久性如何。6.x?
存储应用程序配置是否足够好?
如果我从 AppStore/GooglePlay 更新应用程序会发生什么,它是否仍然保留收集的用户数据?
如果不是,如果我想要使用 cordova 应用程序的持久和预填充数据,你会建议我使用什么 cordova 插件?
提前致谢。
如果您不运行违反任何限制,我认为不会有问题。看一下 post 关于限制的内容:HTML5 localStorage size limit for subdomains
还有iOS 7 webview and localStorage persistence
您可以选择 https://github.com/jcfant/cacheJS 或者如果您使用 Ionic 或 Angular:
我看过很多关于本地存储的链接,遗憾的是还没有找到明确的答案。我可以建议你一个数据库,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);
});
});
}
看文档就知道了。
您可以使用cordova-plugin-nativestorage
用法:NativeStorage.setItem("key", "value", success, error);
我很想知道 localStorage 在 Cordova 3 上的持久性如何。6.x?
存储应用程序配置是否足够好?
如果我从 AppStore/GooglePlay 更新应用程序会发生什么,它是否仍然保留收集的用户数据?
如果不是,如果我想要使用 cordova 应用程序的持久和预填充数据,你会建议我使用什么 cordova 插件?
提前致谢。
如果您不运行违反任何限制,我认为不会有问题。看一下 post 关于限制的内容:HTML5 localStorage size limit for subdomains
还有iOS 7 webview and localStorage persistence
您可以选择 https://github.com/jcfant/cacheJS 或者如果您使用 Ionic 或 Angular:
我看过很多关于本地存储的链接,遗憾的是还没有找到明确的答案。我可以建议你一个数据库,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);
});
});
}
看文档就知道了。
您可以使用cordova-plugin-nativestorage
用法:NativeStorage.setItem("key", "value", success, error);