我目前正在构建一个 Angular 1.x 应用程序,使用 Firebase 和 AngularFire 作为我选择的后端/服务器。 由于该应用程序/网站针对移动设备进行了优化,并且当您将其添加到主页时非常适合作为应用程序,我想知道如何即使手机处于离线状态也能让用户使用它。
在网上搜索,我发现 Firebase 为 Android Java 的对应项提供了一个 keepSynced(true),但是我无法为 js 找到这样的选项。 然后,我使用 HTML5 的 localStorage 和基于上次更改时间的同步来采用手动方法,但由于我使用的是 AngularFire 的一些方便命令(例如 $save),所以我的大部分代码都以这种方式被破坏。
有什么建议吗?
最佳答案
使用$provide.decorator
angular docs
$provide.decorator 的一个很好的用例是当你需要对你的模块所依赖的一些第三方/上游服务做一些小的“调整”,同时保持服务完好无损(因为你不是所有者/服务维护者)stackoverflow question .
基本上你可以检查装饰器内的 navigator.onLine === true
(或使用任何其他方法来检测对 firebase 的请求是否会失败),然后重写一些基于 angularFire 的方法您的需求(写入 localStorage 而不是发送实际的 angularFire 请求)
这是我的 example使用angularfire用装饰器覆盖$add
方法
关于javascript - 离线使用 Firebase Angular 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31901526/