1

好的,现在我正在开发 Angular 6 webApp,它首先处于离线状态。我能够设置一个功能齐全的服务工作者,它可以检索和存储请求和响应等等。但是,有一次,在注册同步事件时,我需要刷新令牌,这些令牌存储在我的 web 应用程序的本地存储中。问题是不允许服务人员直接访问本地存储,这意味着我无法访问驻留在本地存储中的令牌。我如何使用某些 api 在服务人员中使用本地存储,或者是否有任何实现我想要做的其他策略(通过重播失败请求的 fetch 调用并附加更新的令牌来执行同步事件,以便数据通过适当的授权同步)。我什至想用 postmessage() API 尝试它,但它不是

4

1 回答 1

2

您可以使用 IndexedDB 将令牌存储在浏览器数据库中。它的工作原理类似于本地存储。

https://github.com/mozilla/localForage如果你想要一个更简单的 IndexedDB 界面。

您可以使用 importScripts 在服务工作者中导入 localForage 库,例如:https ://github.com/marco-c/mercurius/blob/master/static/sw-push.js

于 2018-10-09T13:24:01.113 回答