为什么未能注册服务人员?

时间:2018-07-04 12:45:41

标签: service-worker progressive-web-apps

我正在研究渐进式Web应用程序示例: https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/

按照指示,我正在注册服务人员的步骤。 这是注册服务工作者的代码:

 if ('serviceWorker' in navigator) {
    navigator.serviceWorker
         .register('./service-worker.js')
         .then(function() { console.log('Service Worker Registered'); });
  }

但是它始终会失败,并显示错误日志为:enter image description here

您能教我为什么我不能注册服务人员吗?

3 个答案:

答案 0 :(得分:1)

您的服务人员未正确链接。提及的路径不正确,因此得到404响应。删除路径和服务工作程序中的“。”,并将包含此脚本的文件放在同一位置。

答案 1 :(得分:0)

我已解决此问题

和即时通讯出现问题

i编码以将“添加到主屏幕”按钮添加到mywebsite

这是myt代码:

let installPromptEvent;

window.addEventListener('beforeinstallprompt' , (event) => {
    e.preventDefault();
    console.log('before install prompt event')
    installPromptEvent = event;
});

document.querySelector('.addtohomescreenbutton a').addEventListener('click' , (event) => {
    e.preventDefault();
    console.log(installPromptEvent);
    if(installPromptEvent) {
        installPromptEvent.prompt();

        installPromptEvent.userChoice
            .then((choiceResult) => {
                if(choiceResult.outcome === 'accepted') {
                    console.log('User Accepted');
                } else {
                    console.log('User dismissed');
                }

                installPromptEvent = null;
            })
    }
})

这是我的错误:

Uncaught TypeError: Cannot read property 'addEventListener' of null
    at

这是他的台词:

.addEventListener('click' , (event) => {

出什么问题了?

答案 2 :(得分:0)

我通过在名为service-worker的工作目录中创建一个js文件来修复此控制台错误,这是本教程要求您执行的操作。

这将正确链接服务工作者,这意味着您将看到控制台日志消息,表明它已正确注册。