【问题标题】:Service Worker in Angular 5Angular 5 中的服务工作者
【发布时间】:2018-04-20 15:58:27
【问题描述】:

我正在尝试在我的项目中使用 Angular Service Worker。我的cli等配置如下-

Angular CLI: 1.6.8
Node: 8.9.4
OS: win32 x64
Angular: 5.2.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cdk: 5.2.1
@angular/cli: 1.6.8
@angular/flex-layout: 2.0.0-beta.12
@angular/material: 5.2.1
@angular/service-worker: 1.0.0-beta.16
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.2.0
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.8
@schematics/angular: 0.1.17
typescript: 2.4.2
webpack: 3.10.0

我已经使用 -service-worker 标志创建了项目,并且还创建了 ngsw.config.json 文件。当我尝试注册服务人员时,我的问题就开始了。

  1. 当我尝试使用 "ServiceWorkerModule.register()", 'register' 方法本身不是 得到识别,它给出了错误。
  2. 为什么我看不到任何其他类,如 swPush 等。

【问题讨论】:

  • 您遇到的错误是什么?
  • 我在上面第 1 项中提到的第一个问题。我现在注意到的另一个问题是,当我构建我的应用程序并将其部署到服务器时,我得到了这个:注册服务工作者时出错:DOMException:只允许安全来源
  • 你在使用 https 吗?
  • 没有。我只是在测试这个 service worker 模块。
  • 在本地还是服务器上?或服务器,没有 https 将无法工作

标签: angular angular5 angular-service-worker


【解决方案1】:

Service Worker 没有 https 就无法工作。

在 http 上安装将失败。

在此处查看更多信息:https://developers.google.com/web/fundamentals/primers/service-workers/#you_need_https

【讨论】:

    【解决方案2】:

    您需要使用 --prod 标志构建您的应用程序。否则,service-worker.js 和 ngsw.json 不会被创建,也不会注册。

    【讨论】:

      【解决方案3】:

      您可以尝试以下步骤:

      • ng 添加@angular/service-worker

      • ng build --prod

      • npm i -g http-server

      • http-server -p 8080

      您也可以添加到主屏幕选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-12
        • 2016-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-22
        相关资源
        最近更新 更多