【发布时间】:2016-02-04 02:09:25
【问题描述】:
我看到 Parse.com 有一个用于 iOS and Android 的本地数据存储。任何离子(或混合)应用程序的解决方案?
【问题讨论】:
标签: caching parse-platform ionic-framework parse-cloud-code local-datastore
我看到 Parse.com 有一个用于 iOS and Android 的本地数据存储。任何离子(或混合)应用程序的解决方案?
【问题讨论】:
标签: caching parse-platform ionic-framework parse-cloud-code local-datastore
不完全确定您要查找的是什么,但是当我想编写具有离线功能的 Ionic 应用程序时,我会使用新的 HTML5 localStorage 变量。
每当应用程序后台或退出时,我都会将应用程序数据和列表的快照保存到其中,因此当用户离线时,它仍然为用户提供内容。
如果您想将对象存储到 localStorage 中,只需使用 JSON.parse/stringify()。
如果你想让获取/设置对象变得容易,只需修改原型:
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
if (value) return JSON.parse(value);
else return false;
}
localStorage 只能保存字符串,其限制因from browser to browser 而异。
我用来保存较大 blob/图像/PDF/长列表/文件的其他方法是 Apache cordova-plugin-file plugin。这提供了 Ionic App 文件系统访问权限(如果您需要离线访问,您可以在那里缓存自己的快照。只需检查连接并不断更新它,如果没有连接将您的应用定向到本地内容而不是在线内容)。
真的取决于你有什么样的应用程序。我将 HTML5 的 localStorage 用于我拥有的清单应用程序,类似于 iOS 的提醒应用程序,但对于不同的列表具有更大的灵活性,并且我将所有用户的列表作为 JSON 字符串保存到 localStorage 中。我有手动或自动更新设置,因此当它检测到连接时,它会与他们的帐户同步以使其保持最新状态。
我正在开发的另一个应用程序也可以创建 PDF 并同步它们,我为此使用了 cordova-plugin-file,因为 PDF 相当大。
【讨论】: