我看到Parse.com有一个iOS and Android的本地数据存储区。任何离子(或混合)应用程序的解决方案?
答案 0 :(得分:2)
不确定你在寻找什么,但是当我想用离线功能编写我的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的提醒应用程序,但是对于不同的列表具有更大的灵活性,并且我将所有用户的列表保存为localStorage作为JSON字符串。我有手动或自动更新设置,因此当它检测到连接时,它会与其帐户同步以使其保持最新状态。
我正在处理的另一个应用程序也会创建PDF并同步它们,我使用cordova-plugin-file,因为PDF文件相当大。