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
在服務人員中不可用,那麼如何在這裏獲得持久性?
工程就像一個魅力,但仍然感到有點不對。 –
什麼感覺錯了? – Marco
濫用IndexedDB與我的問題一樣容易。 –