3

截至目前,Chrome不支持傳遞其他數據來推送從GCM接收到的通知。因此,只要我收到推送通知,我就必須從我的服務工作人員執行fetch。到現在爲止還挺好。如何在服務人員中保留數據

但是:我需要在我的http請求中包含請求參數fetch。我如何告訴服務人員我的參數?

什麼我試過到目前爲止

使用postMessage告訴我的服務人員請求參數:

var serviceWorkerData = {}; 

self.addEventListener('message', function (evt) 
{ 
    console.log('service worker received', evt.data); 

    serviceWorkerData = evt.data.myData; 
}); 

self.addEventListener('push', function(event) 
{ 
    event.waitUntil 
    (
     fetch("http://my.url", { 
      method: 'post', 
      body: 'myData=' + serviceWorkerData 
     }).then(function(response) 
     { 
      //... 
     }) 
    ); 
}); 

爲什麼這是行不通的

但這不是持續,即關閉我的瀏覽器並再次打開後,我的serviceWorkerData丟失。 localStorage在服務人員中不可用,那麼如何在這裏獲得持久性?

回答

相關問題