我是网络开发新手,如果我不清楚我的问题,很抱歉。
我正在尝试制作 PWA,目前正在测试我的清单和 Service Worker 是否正常工作。在我的项目中,我有一个 index.html 文件,它调用文件 app.js,我尝试在其中注册名为 serviceworker.js 的服务工作人员。这是我尝试注册我的服务工作者的代码段:
if('serviceWorker' in navigator) {
navigator.serviceWorker.register('/serviceworker.js')
.then(function() {
console.log('service worker registered');
});
}
else {
console.log('cannot register');
}
当我重新加载页面时,我的控制台显示“无法注册”。为了解决这个问题,我在 if 子句中写了一行,看看是否是条件本身的问题。事实证明,即使删除 if 和 else 子句并简单地运行navigator.serviceWorker.register('/serviceworker.js')
.then(function() {
console.log('service worker registered');
});
代码段中,控制台显示错误“找不到属性寄存器”。据我了解,服务工作人员并不适用于所有浏览器,但我检查了它是否在 Chrome 中运行(这就是我正在测试的浏览器),它表示支持服务工作人员。有人可以告诉我为什么它不起作用吗?我目前使用的是 Chrome 版本 80.0.3987.149(官方版本)(64 位)。 Alsi,我不知道这是否重要,但我正在使用 Node.js。提前致谢。
由于声誉低无法发表评论,但请检查this https://stackoverflow.com/a/52300901/5143202 & this https://stackoverflow.com/a/52269897/5143202 out.
简而言之:
出于安全原因,服务工作线程要求使用它们的站点通过 HTTPS 提供服务,
但对本地主机有例外。
Check this https://stackoverflow.com/q/38497334/5143202了解如何在本地主机上提供 html 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)