当前位置: 首页 > Web前端 > HTML5

Angular应用启用ServiceWorkers的一些先决条件

时间:2023-04-05 13:51:29 HTML5

要使用AngularServiceWorkers的所有功能,请使用最新版本的Angular和AngularCLI。SAPeCommerceCloudSpartacusUI使用的当前Angular版本:^13.3.0要注册ServiceWorker,必须通过HTTPS而不是HTTP访问应用程序。浏览器会忽略通过不安全连接提供的页面上的服务工作者。原因是ServiceWorkers提供了强大的HTTP请求拦截,因此需要格外小心以确保ServiceWorker脚本未被篡改。此规则有一个例外:为了使本地开发更加直接,浏览器在访问本地主机上的应用程序时不需要安全连接。要从AngularServiceWorkers中受益,Angular应用程序必须在通常支持ServiceWorkers的Web浏览器中运行。ServiceWorkers目前在最新版本的Chrome、Firefox、Edge、Safari、Opera、UC浏览器(适用于Android)和SamsungInternet中受支持。IE、OperaMini等浏览器不支持ServiceWorker。如果用户使用不支持serviceworker的浏览器访问Angular应用,则serviceworker不会注册,也不会发生离线缓存管理和推送通知等相关行为。更进一步:浏览器不会下载serviceworker脚本和ngsw.json清单文件主动尝试与serviceworker交互,比如调用SwUpdate.checkForUpdate(),会返回被拒绝的Promise相关服务的可观察事件,比如SwUpdate.available不会被触发Angular强烈建议开发人员确保您的应用程序即使在浏览器中没有服务工作者支持的情况下也能正常工作。尽管不支持的浏览器会忽略ServiceWorker缓存,但如果应用程序尝试与ServiceWorker交互,它仍会报告错误。例如,调用SwUpdate.checkForUpdate()返回一个被拒绝的Promise。为避免在Chrome开发者工具控制台面板中看到此类错误消息,请使用SwUpdate.isEnabled检查AngularServiceWorker是否已启用。