Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lighthouse:失败:站点未注册服务人员_Javascript_Service Worker_Progressive Web Apps - Fatal编程技术网

Javascript Lighthouse:失败:站点未注册服务人员

Javascript Lighthouse:失败:站点未注册服务人员,javascript,service-worker,progressive-web-apps,Javascript,Service Worker,Progressive Web Apps,我有服务人员,我注册服务人员的代码: if('serviceWorker' in navigator) { navigator.serviceWorker .register('sw.js') .then(function() { console.log('Service Worker Registered'); }) .catch(function(error) {console.log('Service worker registration failed,

我有服务人员,我注册服务人员的代码:

if('serviceWorker' in navigator) {
  navigator.serviceWorker
    .register('sw.js')
    .then(function() { console.log('Service Worker Registered'); })  
    .catch(function(error) {console.log('Service worker registration failed, error:', error);  });
} 
当我在浏览器中打开应用程序时,它会显示登录浏览器控制台的“Service Worker Registered”

此外,我可以在“应用程序”选项卡的“服务工作者”部分“显示服务工作者”中的chrome的inspect元素中看到服务工作者。 见错误

问题

  • 当我使用lighthouse进行测试并生成报告时,它显示:
  • 不会提示用户安装Web应用程序 失败:站点未注册服务工作人员
    我的代码在这里:

    我不确定您添加事件侦听器的方法是否正确,您是否可以尝试遵循此指南:

    他们给出的安装时缓存文件的示例如下所示:

    self.addEventListener('install', function(event) {
      event.waitUntil(
        caches.open(cacheName).then(function(cache) {
          return cache.addAll(
            [
              '/css/bootstrap.css',
              '/css/main.css',
              '/js/bootstrap.min.js',
              '/js/jquery.min.js',
              '/offline.html'
            ]
          );
        })
      );
    });
    

    这会导致您的软件在安装时中断。

    您的SW.js文件中出现控制台错误,这可能是导致问题的原因。也许试着看看你是否能解决这个问题。你能从你的服务人员文件中发布代码吗?代码链接:嗨,Arvind,我刚刚用灯塔测试了你的例子,看起来问题已经解决了(软件注册成功),对吗?你是如何解决这个问题的,你能给出一个答案吗?嗨,谢谢你的宝贵意见,但我在我的服务人员中写的代码是一样的:var VERSION='2';这个.addEventListener('install',函数(e){e.waitUntil(caches.open(VERSION).then(cache=>{return cache.addAll(['/','/index.html','/sw.js','/style.css','/Icon.png','/fox Icon.png','/Icon-512.png']);});你能试着使用self.addEventListener而不是这个吗。