2015-08-09 133 views
8

我目前正在构建一个使用Firebase和AngularFire作为我选择的后端/服务器的Angular 1.x应用程序。 由于应用程序/网站已针对移动设备进行了优化,并且在将其添加到主页时完全适合作为应用程序,所以我想知道如何让用户即使手机处于离线状态也能使用它。离线使用Firebase Angular应用程序

在网上搜索时,我发现Firebase为Android Java的对手提供了一个keepSynced(true),但是我无法为js找到这样的选项。 然后我使用HTML5的localStorage和基于上次更改时间的同步手动方法,但由于我使用了一些AngularFire的方便命令(如$ save),因此我的大部分代码都以此方式打破。

有什么建议吗?

+0

这个问题(http://stackoverflow.com/questions/25990048/offline-firebase)提到,AngularFire支持重新连接中断连接,但不是真正的脱机支持。看起来你需要推出自己的解决方案或使用其他服务。 – Isaac

回答

2

使用$provide.decoratorangular docs
$ provide.decorator的一个很好的使用情况是,当你需要一些第三方的下载/上传服务,上你的模块取决于做轻微的“调整”,而离职完好(因为你不是服务的拥有者/维护者)stackoverflow question

基本上你可以检查是否navigator.onLine === true内部装饰(或使用任何其他的方法来检测是否请求火力点是要失败的),然后覆盖根据您的需求angularFire的一些方法(写的localStorage而不是发送实际angularFire请求)

这里是我的example使用angularfire首要$add法装饰

和装饰

1

here's the basic example保持完全FUNCT离线案例手动应用程序可能是一个非常棘手的道路,但有几种方法可以解决这个问题,你可以尝试使用kinvey,检查页面,我认为这正是你正在寻找的。

另一种方法是使用indexedDB而不是localStorage,并根据连接状态选择保存操作的目标,通过简单地搜索关于同步脱机html5 indexedDB,可以找到关于该主题的大量资源。 我希望这对你有帮助