为网络和离子应用程序设置不同的“ click_action”

use*_*021 5 firebase-cloud-messaging angular ionic4

我有一个Web应用程序(Angular 6)和移动应用程序(Ionic 4),并且都连接到同一个数据库。我正在使用FCM(Firebase云消息)进行推送通知。我关注了2个链接1. https://www.djamware.com/post/5c6ccd1f80aca754f7a9d1ec/push-notification-using-ionic-4-and-firebase-cloud-messaging 2. https://medium.com/@selvaganesh93 / firebase-cloud-messaging-important-rest-apis-be79260022b5

我已经为每个用户创建了FCM“组”。这意味着用户可以使用多个设备(浏览器或移动设备)登录到该应用程序,并且该用户将拥有一个“ fcm_notification_key”,其中包含来自不同设备的FCM令牌。

因此,现在当应用程序将任何通知推送到此唯一的“ fcm_notification_key”键时,与该键连接的所有设备(网络和离子应用程序)都将收到。这很正常。

  "notification":{
    "title":"Notification Title",
    "body":"Notification Body",
    "click_action" : "myweb.com/specific_url",
  }
Run Code Online (Sandbox Code Playgroud)
  "notification":{
    "title":"Notification Title",
    "body":"Notification Body",
    "click_action" : "FCM_PLUGIN_ACTIVITY",
  }
Run Code Online (Sandbox Code Playgroud)

首先是使用Web,当用户单击通知时,将在浏览器中打开“ click_action”中指定的URL。哪个是正确的。

第二个是使用Ionic应用程序。用户单击通知时,由于为“ click_action”指定了“ FCM_PLUGIN_ACTIVITY”,因此它将打开Ionic应用程序。这也是正确的。

但是问题是,现在我正在向网上论坛发送通知(该网上论坛将包含Web应用程序和ionic应用程序)。我应该如何发送数据,以使其适用于网络和离子数据?

Adr*_*rma 2

您可以在 json 中有一个方法,并根据类型,从函数处理事件

"notification":{
   "title":"Notification Title",
   "body":"Notification Body",
   "click_action: ()" : "click_action()",
}
Run Code Online (Sandbox Code Playgroud)

TS:

click_action() {
  if(app) {

  } else {   
}
Run Code Online (Sandbox Code Playgroud)