如何在ServiceWorker中的推送事件中获取注册ID?

时间:2015-11-25 09:57:01

标签: service-worker

订阅时我有注册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

1 个答案:

答案 0 :(得分:5)

ServiceWorkerGlobalScope内,您可以获得有效的ServiceWorkerRegistration,然后会PushManager显示{em>然后为您提供getSubscription()方法,返回使用当前订阅解析的Promise

有很多层要遵循,但实际的代码非常简单:

self.registration.pushManager.getSubscription().then(subscription => {
  // Do something with subscription.endpoint
});