Firefox似乎无法为推送通知注册ServiceWorker,但出现错误"InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable"
,但该代码可在Chrome和Edge中运行,并且似乎与在线示例和规范兼容。
我已经在我的一个测试站点https://wiegandtech.net/上举了一个例子-在Chrome中访问它会提示您获得许可,然后选择成功加入,然后将信息发送到服务器。但是Firefox会提示,不会完成注册,也不会引发任何错误或将任何内容扔到控制台中。当我尝试调试时,它似乎永远不会从navigator.serviceWorker.ready.then
调用中返回-我进行了调试,并且reg
是未定义的,即使Promise认为不是。我找不到失败的原因。我确实在Fiddler中看到FF获取了工作文件,因此它似乎正在开始调用,但从未结束?据我所知,该工作程序是有效的JavaScript。有没有人有关于Firefox的实现与Chrome的/规范有何不同的文档?
答案 0 :(得分:0)
Firefox需要ServiceWorker的URL以.js结尾-我使用的是ASP.Net网站,但是通过我自己的控制器返回了javascript。当我只给它.js文件本身的URL时,它现在可以工作了。会提交一个错误,但考虑到ServiceWorkers需要一个实际的站点来进行故障排除,并且它们的源代码似乎不在github上,因此设置站点不是一件容易的事。