Firebase云消息传递click_action无法工作

4

我正在从 Firebase 控制台向 Web 应用程序(Firebase)发送通知。当我从 POSTMAN 发送 POST 请求时,我可以在点击通知时导航到 URL。但是当我从 Firebase 控制台发送它时,我无法打开 URL。此外,我需要将我的徽标添加为通知的图标。

POSTMAN

{
          "notification": {
          "title": "Push notification test",
          "body": "It works! ",
       "icon": "https://soft-ing.info/img/firebase.png",
    "click_action": "https://google.com"
  },
  "to": "dLXCbmVCh5Y:APA91bGmFN7BUsKqwWFokyoBsoph6k4EhBQEflwJLFrPaUzTceYhAPYfFf8LqTRBVJGCA0gWS_0k0DUCeJBa7jdopIyjFQNprtp3lkQgLmUNRUibLIIMxAuBZeXuHTqaU-BA4QwbekN6"
}

Service Worker文件代码

messaging.setBackgroundMessageHandler(function(payload) {
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    // Customize notification here
    const notificationTitle = payload.data.title;//'Background Message Title';
    const notificationOptions = {
        body: payload.data.body,//'Background Message body.',
        icon: payload.data.icon,
        image : payload.data.image,
        data:{
            time: new Date(Date.now()).toString(),
            click_action : payload.data.click_action
        }
    };

return self.registration.showNotification(notificationTitle,notificationOptions);
});

self.addEventListener("notificationclick", (event) => {
  event.waitUntil(async function () {
      const allClients = await clients.matchAll({
          includeUncontrolled: true
      });
      let chatClient;
      let appUrl = 'https://www.google.com';
      for (const client of allClients) {
      //here appUrl is the application url, we are checking it application tab is open
          if(client['url'].indexOf(appUrl) >= 0) 
          {
              client.focus();
              chatClient = client;
              break;
          }
      }
      if (!chatClient) {
          chatClient = await clients.openWindow(appUrl);
      }
  }());
});
1个回答

0
上述您分享的两个片段存在一些差异。 在您的情况下,body: payload.data.body 应该改为 body: payload.notification.body,您需要在服务工作者的其他地方进行类似操作,因为这是您发送请求的方式。

好的,我会尝试。 - Bharadhan VM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接