2

所以我的问题很简单:

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

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

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

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

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

4

2 回答 2

1

@angular/service-worker 没有后台同步 API 支持。

此处跟踪功能请求

Angular PWA 库基于 ngsw-config.json 文件重新构建服务工作者。不建议修改这个生成的 service worker,因为它会在构建时重新构建,因此您只能任由库供应商摆布,它还不支持后台同步 API。

于 2020-09-11T15:46:57.260 回答
1

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

Workbox 只是一个库,它将许多 Service Worker 缓存模式抽象为更易于管理的 API,并在浏览器支持时添加后台同步。

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

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

后台同步 API 为您提供的优势是它会在用户未在应用程序甚至设备中处于活动状态的情况下启动 service worker。就在设备感觉网络再次可用时。

于 2020-02-03T21:38:12.003 回答