我目前正在使用Capacitor制作一个应用程序,因为它使用内部 https 服务器将文件提供给WebView而不是文件协议,这应该允许我使用服务工作者,但遗憾的是这似乎并非如此,甚至据我了解,我所做的一切都在规范范围内。
主脚本代码:
navigator.serviceWorker.register('sw.js');
服务工作者代码:
console.log("I'm a service worker");
我得到什么
提取脚本时发生未知错误。加载资源失败:net::ERR_CONNECTION_REFUSED localhost/:1 Uncaught (in promise) TypeError: Failed to register a 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");
如果有人知道我做错了什么或者这仍然不符合规范,请告诉我