首页 > 解决方案 > 为 web 和 ionic 应用程序设置不同的“click_action”

问题描述

我有一个 Web 应用程序(Angular 6)和一个移动应用程序(Ionic 4),它们都连接到同一个数据库。我正在使用 FCM ( Firebase Cloud Message ) 进行推送通知。我关注了 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",
  }
  "notification":{
    "title":"Notification Title",
    "body":"Notification Body",
    "click_action" : "FCM_PLUGIN_ACTIVITY",
  }

第一个是使用网络,当用户单击通知时,在“click_action”处指定的 URL 在浏览器中打开。哪个是对的。

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

但问题是,现在我正在向 Group 发送通知(其中将包含 web app 和 ionic app )。我应该如何发送数据以便它适用于 web 和 ionic?

标签: angularfirebase-cloud-messagingionic4

解决方案


好吧,您要处理click_action属于特定设备组的每个设备属于用户的不同类型和其他参数,

如果是这样,那么这个问题的答案是:您可以通过自定义属于特定组的每个设备的参数来合并通知有效负载选项,如下所示,以供参考组消息传递的官方文档

{
  "name": string,
  "data": {
    string: string,
    ...
  },
  "notification": {
    object (Notification)
  },
  "android": {
    object (AndroidConfig)
  },
  "webpush": {
    object (WebpushConfig)
  },
  "apns": {
    object (ApnsConfig)
  },
  "fcm_options": {
    object (FcmOptions)
  },

  // Union field target can be only one of the following:
  "token": string,
  "topic": string,
  "condition": string
  // End of list of possible types for union field target.
}

所以回答How should I send the data so that it will work for both web and ionic ?

如下所示

{
  "name": string | key,
  "notification":{
    "title":"Notification Title",
    "body":"Notification Body",
  },
  "android": {
      "notification": {
          "click_action" : "FCM_PLUGIN_ACTIVITY",
      }
   },
  "webpush": {
      "notification": {
          "click_action" : "myweb.com/specific_url",
      }
   },
    
  ...,
  ...,
  ...,
}

供参考文档。

希望它有帮助,干杯:)


推荐阅读