Angular PWA 在没有 WorkBox 的情况下添加后台同步

标签 angular service-worker progressive-web-apps angular-service-worker angular-pwa

所以我的问题很简单:

使用 Angular PWA 时是否有后台同步。 由于某些原因,我无法使用 WorkBox。

我找到的唯一信息是:https://github.com/angular/angular/issues/22145

目前仍然开放。还有其他选择吗?

我觉得没有后台同步,制作“离线应用程序”是不可能的。我找到了这个https://golb.hplar.ch/2018/12/background-sync-ng.html这告诉我有一种方法,不幸的是我一般没有太多的 PWA 经验,而且我不明白上面的链接如何工作/可以帮助我。

欢迎任何指南或解决方案!

最佳答案

首先,将 Angular 从这个问题中分离出来,它与 Service Worker 无关。完全独立的动物。

Workbox 只是一个库,它将大量服务工作线程缓存模式抽象为更易于管理的 API,并在浏览器支持时添加后台同步。

您可以在没有 Workbox 的情况下使用后台同步 API。我会警告您,这是一个非常复杂的 API,就像 IndexedDB 一样。

您不需要后台同步即可使 PWA 离线工作。它是完全可选的。事实上,因为只有 Chrome 和 Edge 支持后台同步,所以我什至不用操心 API。相反,如果我需要离线同步功能,我会根据应用程序需求构建解决方案。我使用 IndexedDB 和 Service Worker 缓存的组合来保存数据。

后台同步 API 给您带来的优势是,无需用户在应用程序甚至设备中处于事件状态,它就能启动 Service Worker。当设备感觉网络再次可用时。

关于Angular PWA 在没有 WorkBox 的情况下添加后台同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60040210/

相关文章:

css - 如何修改 textarea/input 标签中占位符属性的 CSS?

ios - Service Worker 和 iOS/Safari

javascript - 如何在 Service Worker 中发出 JSONP 请求?

javascript - 离线页面的渲染无法在实时服务器上运行

offline - 如何使用 PWA 离线视频内容?

typescript - Angular 2 - 如何将依赖项注入(inject)到不是组件且未作为服务公开的自定义类

javascript - OpenLayers getFeatures() 访问属性

javascript - 如果用户以 Angular 注销,则关闭弹出窗口

javascript - 服务 worker 安装过程中的 Firebase 消息警告消息

javascript - 短期响应缓存中的 XHR 调用