我正在研究使用 trigger.io 构建移动应用程序,但我没有找到关于本地数据库选项的好的文档。我的应用程序会将数据发送到外部 API,但需要能够将数据作为草稿在本地存储(如果用户离线,则 API 不可用,无论如何)。
我看到有一个用于存储数据的prefs 模块,但它似乎不是正确的(如果我错了,请纠正我)。这里推荐什么选项?有没有类似于PhoneGap 的 SQLite 插件的东西?
我正在研究使用 trigger.io 构建移动应用程序,但我没有找到关于本地数据库选项的好的文档。我的应用程序会将数据发送到外部 API,但需要能够将数据作为草稿在本地存储(如果用户离线,则 API 不可用,无论如何)。
我看到有一个用于存储数据的prefs 模块,但它似乎不是正确的(如果我错了,请纠正我)。这里推荐什么选项?有没有类似于PhoneGap 的 SQLite 插件的东西?
这可能取决于您的使用模式。
例如,forge.prefs
如果您想做任何有趣的查询,可能会有点繁琐,但如果您只想保留单个 JavaScript 对象结构,则可以很好地工作。使用window.localStorage
可能有类似的优点/缺点。
或者,您可以在 JavaScript 中使用 WebSQL API:http: //docs.trigger.io/en/v1.4/release-notes.html#v1-3-5。您不需要为此使用模块,它应该适用于使用 Forge 构建的任何 Android 或 iOS 应用程序。这实质上为您提供了一个可从 JavaScript 访问的 SQLite 数据库。为了让您对 API 有所了解,下面是一个示例:
// create db
var db = openDatabase('mydb', '1.0', 'example database', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "foobar")');
});
// query db
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
var rows = results.rows;
for (var i = 0; i < rows.length; ++i) {
forge.logging.info("row text: " + rows.item(i).text);
}
});
});
你应该可以在网上找到一些关于的教程!