【问题标题】:How do I access the local storage using service workers in angular?如何使用服务人员以角度访问本地存储?
【发布时间】:2019-03-14 06:42:00
【问题描述】:

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

【问题讨论】:

    标签: angular synchronization backgroundworker angular-service-worker service-worker-events


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 1970-01-01
      • 2020-01-26
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多