我目前正在构建Angular 1。x应用程序使用Firebase和AngularFire作为我选择的后端/服务器。由于应用程序/网站针对移动设备进行了优化,并且当您将其添加到主页时,它非常适合作为应用程序,我想知道如何能够让用户在手机离线的情况下使用它。
在网上搜索,我发现Firebase为Android Java的对应版本提供了keepSynced(true),但是我无法为js找到这样的选项。然后我使用了HTML5的localStorage和基于最后更改时间的同步,但由于我使用了一些AngularFire的方便命令(如$save),我的大部分代码都被破坏了。
任何建议吗?
使用 基本上你可以检查 下面是我使用angularfire重写 这里是decorator$provide.decorator
angular docs
$ provider .decorator的一个很好的用例是当你需要对你的模块所依赖的一些第三方/上游服务做一个小的"调整",同时保持服务完整(因为你不是服务的所有者/维护者)。navigator.onLine === true
内部装饰(或使用任何其他方法来检测是否请求firebase将失败),然后覆盖一些方法的angularFire根据你的需要(写到localStorage而不是发送实际的angularFire请求)$add
方法与decorator
为离线情况手动维护一个功能齐全的应用程序可能是一条非常棘手的道路,但有几种方法可以克服这一点,你可以尝试使用kinvey,检查页面,我认为这正是你正在寻找的。
另一种方法是使用indexedDB而不是localStorage,并根据您的连接状态选择保存操作的目标,您可以通过简单地搜索关于离线同步html5 indexedDB的主题找到很多资源。我希望这对你有所帮助