2016-12-30 40 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)。