Angular6 Service Worker和后台同步

时间:2018-07-20 19:13:54

标签: angular6 angular-service-worker

angular6 似乎不支持与Service Worker进行后台同步。在有角度的服务中没有任何库的情况下,需要执行哪些步骤?

https://developers.google.com/web/updates/2015/12/background-sync

如何直接在 angular6 应用程序中访问 WorkerGlobalScope ,以便可以进行后台同步。

if sort_info and sort_info[0][0] == 'package_count':
    query = model.Session.query(model.Group.id,
                                model.Group.name,
                                sqlalchemy.func.count(model.Group.id))

    query = query.filter(model.Member.group_id == model.Group.id) \
                 .filter(model.Member.table_id == model.Package.id) \
                 .filter(model.Member.table_name == 'package') \
                 .filter(model.Package.state == 'active')
else:
    query = model.Session.query(model.Group.id,
                                model.Group.name)

问题在于,有角度的CLI会生成servicworker文件( ngsw-worker.js )。有没有办法注入 / 修改 / 扩展此文件?是的,我可以手动或使用其他技巧来编辑文件 ngsw-worker.js 。有官方的方法吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用自定义脚本来扩展Angular服务人员的功能。

只需执行以下步骤:

  1. 使用您的自定义脚本创建js文件,假设sw-custom.js 在项目的src目录下。
  2. importScripts('./ngsw-worker.js')文件顶部添加“ sw-custom.js”。
  3. 在脚本部分的sw-custom.js文件中添加angular.json文件。
  4. 现在在应用模块中注册sw-custom.js文件,而不是

ngsw-worker.js

就这样,现在您可以根据需要在此处编写脚本。

也许这不是正确的方法,但是可以。

这里是blog