订阅时我有注册ID,但是当我收到推送通知时,我无法弄清楚如何在服务工作文件中获取它?
client.js
self.addEventListener('push', event => {
// I'd like to make a request to server to get the notification data, but I need the registrationId for that. How do I get registration id here?
});
服务worker.js
user_education_history
答案 0 :(得分:5)
在ServiceWorkerGlobalScope
内,您可以获得有效的ServiceWorkerRegistration
,然后会PushManager
显示{em>然后为您提供getSubscription()
方法,返回使用当前订阅解析的Promise
。
有很多层要遵循,但实际的代码非常简单:
self.registration.pushManager.getSubscription().then(subscription => {
// Do something with subscription.endpoint
});