我目前正在使用Capacitor制作应用,因为它使用内部https服务器将文件而非文件协议提供给WebView,这应该允许我使用服务工作者,但是令人遗憾的是,事实似乎并非如此,即使据我了解,我试图做的所有事情都在规范范围内。
主脚本代码:
navigator.serviceWorker.register('sw.js');
服务人员代码:
console.log("I'm a service worker");
我得到了什么
提取脚本时发生未知错误。 无法加载资源:net :: ERR_CONNECTION_REFUSED localhost /:1未捕获(承诺)TypeError:无法注册ServiceWorker:提取脚本时发生未知错误。
我希望得到什么
我是服务人员
另一方面,当我尝试以完全相同的请求获取服务工作者时,它工作正常。
代码:
fetch("https://localhost:4634/sw.js", {
"credentials":"omit",
"headers": {},
"referrer":"https://localhost:4634/sw.js",
"referrerPolicy":"no-referrer-when-downgrade",
"body":null,
"method":"GET",
"mode":"cors"
}).then(res => {
return res.text();
}).then(text => {
console.log(text);
});
我回来了:
console.log("I'm a service worker");
如果有人知道我在做什么错,或者仍然不合规格,请让我知道