我正在使用最近发布的FCM messaging支持在chrome上进行推送通知。当我的应用程序在后台运行时,我会收到通知,但是单击通知时什么也没有发生。如何指定当用户单击通知时应打开的URL? (我了解如何通过使用notifyclick事件使用纯服务 worker 概念来完成此操作,我想知道如何使用FCM messaging做到这一点。)

messaging.setBackgroundMessageHandler(function(payload) {
  var data = payload || {};
  var shinyData = decoder.run(data);

  console.log('[firebase-messaging-sw.js] Received background message ', shinyData);

  return self.registration.showNotification(shinyData.title, {
    body: shinyData.body,
    icon: shinyData.icon
  })
});

我在这里想念什么?

最佳答案

click_action不是showNotification函数的可能参数之一。

要处理对通知的单击,请定义一个notificationclick事件处理程序。

例如:

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

09-25 22:12