Firefox似乎无法注册用于推送通知的ServiceWorker?

时间:2018-12-24 22:28:26

标签: firefox

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的/规范有何不同的文档?

1 个答案:

答案 0 :(得分:0)

Firefox需要ServiceWorker的URL以.js结尾-我使用的是ASP.Net网站,但是通过我自己的控制器返回了javascript。当我只给它.js文件本身的URL时,它现在可以工作了。会提交一个错误,但考虑到ServiceWorkers需要一个实际的站点来进行故障排除,并且它们的源代码似乎不在github上,因此设置站点不是一件容易的事。