Firebase FCM:无法单击通知

Firebase FCM:无法单击通知,firebase,push-notification,firebase-cloud-messaging,service-worker,web-push,Firebase,Push Notification,Firebase Cloud Messaging,Service Worker,Web Push,我在chrome上使用最近发布的推送通知支持。当我的应用程序在后台时,我会收到通知,但单击通知时不会发生任何事情。如何指定用户单击通知时应打开的URL?(我了解如何使用notificationclick事件使用纯服务工作者概念,我想知道如何使用。) 这里缺少什么?单击操作不是函数的可能参数之一 要处理单击通知,请定义事件处理程序 例如: self.addEventListener('notificationclick', function(event) { event.notificatio

我在chrome上使用最近发布的推送通知支持。当我的应用程序在后台时,我会收到通知,但单击通知时不会发生任何事情。如何指定用户单击通知时应打开的URL?(我了解如何使用notificationclick事件使用纯服务工作者概念,我想知道如何使用。)


这里缺少什么?

单击操作
不是函数的可能参数之一

要处理单击通知,请定义事件处理程序

例如:

self.addEventListener('notificationclick', function(event) {
  event.notification.close();
  event.waitUntil(self.clients.openWindow(YOUR_URL_HERE));
});

马可的回答是正确的

Firebase消息传递库是Web推送API顶部的包装器

通知:{单击操作:'https://...“}
payload将显示通知并为您处理单击。为了实现与数据有效负载相同的功能,您应该实现
通知单击
事件侦听器(如Marco建议的)

您也可以对
notificationclose
事件执行相同的操作:

self.addEventListener('notificationclose', function(event) {
  ... Do your stuff here.
});

我更新了我的问题,使之更清楚。我知道如何使用notificationClick事件来实现这一点,但我不知道如何使用firebase消息传递库来实现这一点。很抱歉搞混了。我正在努力回答这个问题。。。在这种情况下,“自我”指的是什么?是通知、服务人员注册还是其他对象?为了回答我之前的评论,注册服务人员时应在您提供的脚本中加入
self.addEventListener
。它对我不起作用的原因是我的脚本被缓存了。我需要注销我的服务人员,确保脚本不再缓存,然后重新注册服务人员。
self.addEventListener('notificationclick', function(event) {
  event.notification.close();

  ... Do your stuff here.
});
self.addEventListener('notificationclose', function(event) {
  ... Do your stuff here.
});