我有一个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"。这也是正确的。
但问题是,现在我正在向组发送通知(其中将包含网络应用程序和离子应用程序(。我应该如何发送数据,以便它同时适用于网络和ionic?
您可以在 json 中有一个方法,并根据类型处理来自函数的事件
"notification":{
"title":"Notification Title",
"body":"Notification Body",
"click_action: ()" : "click_action()",
}
TS:
click_action() {
if(app) {
} else {
}
好吧,您想处理不同类型的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",
}
},
...,
...,
...,
}
供参考文档。
希望有帮助,干杯:)