George
George

Reputation: 734

How to get the notification title and body using cordova-plugin-fcm on an ionic 1 app

I am using Firebase Cloud Messaging HTTP Protocol to send push notifications to my application using postman for testing.

I am using the following code to send the push.

{
  "notification":{
    "title":"Title",
    "body":"this is a notification to a specific topic",
    "sound":"default",
    "click_action":"FCM_PLUGIN_ACTIVITY",  
  },
  "data":{
    "action":"ping"
  },
  "to":"/topics/Topic_1",
  "priority":"high"
}

and I am using this code to handle the notification on my app:

FCMPlugin.onNotification(function(data){
    console.log(data);
    if(data.wasTapped){
      //Notification was received on device tray and tapped by the user. 
      alert('notification tapped'+ JSON.stringify(data) );
    }else{
      //Notification was received in foreground. Maybe the user needs to be notified. 
      alert('application is open'+ JSON.stringify(data) );
    }
});

it is all working except i cannot get the title and the body to use them in my application, all I am getting is the following:

Object {wasTapped: false, action: "ping"}

I cannot find a way to get the notification title and body.

I know I can copy them to the data section but that's not logical its a dirty workaround

so any idea how to get the notification data? thank you.

Upvotes: 0

Views: 2109

Answers (1)

AL.
AL.

Reputation: 37798

Basing from the behavior shown, I'm presuming that the client platform is Android. If so, then this is working as expected.

When sending a combination of both notification and data in your message payload, the Android System tray will be the one to handle the values in notification. The dirty workaround you mentioned is the only workaround so far -- a workaround that I actually suggested on one of my answers as well.

Upvotes: 2

Related Questions