2016-12-30 42 views
0

服务人员获得注册,但navigator.serviceWorker.ready显示为空。不适用于Chrome的服务人员

navigator.serviceWorker.register('sw.js', {scope: './'}).then(function(registration) { 
    // Registration was successful 
    console.log('ServiceWorker registration successful with scope: ', registration.scope); 
    //Check subscription state 
    checkSubscription(); 
    }); 
}) 
function checkSubscription() { 
console.log('fun checkSubscription'); 
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration){ 
serviceWorkerRegistration.pushManager.getSubscription().then(
    function(pushSubscription) { 
    if(!!pushSubscription) { 
     console.log(pushSubscription); 
     pushStatus = true; 

    } 
    else { 
     pushStatus = false; 
    } 
    }.bind(this)).catch(function(e) { 
    console.error('Error getting subscription', e); 
    }); 
}); 
} 

以上是我的代码。这在Firefox浏览器中工作正常。

+0

你在铬中遇到了什么错误。检查控制台并让我们知道 –

+0

'//sw.js self.addEventListener('activate',function(event){ console.log(“SW activated”); }); ' – aniket876

+0

上面的镀铬 – aniket876

回答

0

如果在Google Chrome上运行服务工作者,则需要在服务器上运行您的网站,如apache(xampp)/ nodejs(http-server)。