问题标签 [angular-service-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
729 浏览

angular - 如何使用角度 pwa 原理图库

我看到一个新的图书馆已经登陆,或者至少我刚刚开始熟悉它。此问题中的重现步骤参考@angular/pwa但我找不到任何文档(尚未!)。有谁知道这个库对于 Angular CLI 用户的用途和功能?还是功能透明?我一直在手动尝试服务人员。

0 投票
0 回答
99 浏览

angular - 使用带有角度的服务工作者修改请求的标头

我有一个带有第三方工具的角度应用程序。我想拦截从第三方工具生成的请求,以修改传出的标头参数。

我尝试使用 http 拦截器,但不幸的是,它只拦截从我自己的应用程序发出的请求。

我想知道我是否能够使用有角度的服务人员拦截所有传出请求?如果是这样,我是否需要修改 ngsw-worker.js 文件的代码,或者我应该将我的代码集成到应用程序的其他位置?

谢谢!

0 投票
3 回答
1054 浏览

angular - Angular 5 中的服务工作者

我正在尝试在我的项目中使用 Angular Service Worker。我的cli和其他配置如下——

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

  1. 当我尝试使用“ServiceWorkerModule.register()”注册服务工作者时,“注册”方法本身没有被识别并且它给出了错误。
  2. 为什么我看不到任何其他类,如 swPush 等。
0 投票
1 回答
712 浏览

javascript - Angular 5:如何使用 Service Worker 下载 pdf

JsPdf用来在客户端生成和下载pdf。不幸的是,这个过程让浏览器挂了一段时间。

所以我的问题是如何在后台生成和下载pdf,使用service worker

0 投票
1 回答
3916 浏览

angular - Angular5 Service Worker 更新(SWUpdate)未在 Firefox 上检测到。在铬上工作

我正在使用Angular5angular service worker

cached有一些数据和一些资产,一切都按预期工作,甚至部署了代码。

现在,如果我更新一些代码并再次部署,则service worker不会更新。

所以,我已经通过了Angular 服务工作者链接并且我实现了SwUpdate service

这是我的代码:

我创建了一个服务并在 App Component 中调用它

上面的代码做了什么:

  • 每当部署新代码时,旧的 serviceworker 都会检测到它。
  • 然后它subscribesupdates.available事件。
  • 我们监听该事件并重新加载页面。

问题:

现在,问题是,它在 chrome 上完美运行。但不是在 Firefox 中。在Firefox中,代码没有进入 updates.available.subscribe

0 投票
0 回答
57 浏览

javascript - Service Worker 同步加载

我正在建立一个第一次实现服务工作者的网站。我正在测试性能,我得到了大约 500 毫秒。我尝试在私人窗口中运行性能测试,结果大约翻了一番。当我查看页面加载时,看起来 service worker 不仅首先加载,而且是同步加载的,并且它本身持续了大约 500 毫秒。请注意,花费这么长时间的不是我的 js 文件,而是我正在以这种方式加载的工作箱库:importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');有人能给我一些见解吗?真的是同步加载吗?有没有其他方法可以解决这个问题?这只是第一次加载吗?先感谢您。

以下是一些截图:

常规负载

常规负载

私人窗口负载

私人窗口负载

0 投票
1 回答
747 浏览

angular - Service Workers Angular 在 URL 中使用版本参数加载资产

我有一个 Angular 6 应用程序,其中包含:

我得到了一个不错的服务工作者,但是在离线情况下,服务工作者不会处理带有 url GET 参数或版本的资源:

路径是对的!

这些文件位于 build 命令生成的 ngsw.json 中:

但我认为 GET 参数是问题所在。有谁知道我如何阻止字体真棒将版本参数放入 URL

或者

如何让(角度)服务人员使用 GET 参数响应文件?

0 投票
1 回答
3128 浏览

angular - Angular PWA 离线数据处理

最近几天,我开始听说服务人员很酷。我想在我的角度项目中实现服务工作者,以使我的网络应用程序完全离线工作,这意味着用户应该在离线时处理数据,一旦他们发现互联网,那么数据应该用 MongoDB 更新(我们正在使用用于数据库)。我听说 indexeddb 但我不知道如何将它与我的角度集成。这样做的任何适当的角度方式。或者有什么好的教程可以学习?

提前致谢

0 投票
0 回答
325 浏览

angular - 使用 Angular 5 和 Service Worker 在重新加载时获取最新版本的应用程序

我正在为我的一个应用程序使用带有服务工作者的 Angular 5。Service Worker 工作正常,但我无法使用 Service Worker 的 SwUpdate 功能。我在我的应用程序组件中使用以下代码来检查更新-

当我在服务器上检查我的应用程序时,它总是给出如下错误 - 在此处输入图像描述

0 投票
1 回答
895 浏览

angular - Angular 中的 PWA 支持抛出 node_modules/@angular/service-worker/service-worker.d.ts,找到版本 4,预期 3 错误

我正在将 PWA 集成到我的 Angular 项目中。它在注册ServiceWorkerModule时出错app.module.ts

app.module.ts

当我跑步时ng build --prod给我这个错误

./src/main.ts 中的错误找不到模块:错误:无法解析 '/app/webel/src/main/webapp/webel/src 中的 './$$_gendir/app/app.module.ngfactory' ' 错误中的错误:模块 /app/webel/src/main/webapp/webel/node_modules/@angular/service-worker/service-worker.d.ts 的元数据版本不匹配,在 StaticSymbolResolver.getModuleMetadata 中找到版本 4,预期为 3 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:25616:34) 在 StaticSymbolResolver._createSymbolsOf (/app/webel/src/main/webapp/webel /node_modules/@angular/compiler/bundles/compiler.umd.js:25404:46) 在 StaticSymbolResolver.getSymbolsOf (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd .js:25385:14) 在 /app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler。umd.js:24241:30 at Array.forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler .analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp /webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli /src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58)在 process._tickCallback (internal/process/next_tick.js:160:7)forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler.analyzeModulesAsync (/app/webel/src/ main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler- cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30 ) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/ next_tick.js:160:7)forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler.analyzeModulesAsync (/app/webel/src/ main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler- cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30 ) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/ next_tick.js:160:7)79) 在 AotCompiler.analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src /main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular /compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js: 428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)79) 在 AotCompiler.analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src /main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular /compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js: 428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)代码生成 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/ webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/ webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)代码生成 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/ webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/ webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)

我正在使用以下版本,

任何帮助,将不胜感激。