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与我的问题一样容易。 –