I have an Android app developed with Ionic Framework. I'm using the ngCordova plugin for push notifications and sending them using parse.com
The notifications are received when the app is running, but the notifications are not shown on the notification tray when the app is on background. I receive something like this:
notification = {
payload: {
data: {
alert: "message",
}
}
}
But, when I send them directly through CGM, the notification do appear on the notification tray. And the object I receive is like:
notification = {
message: "this appear on notification tray",
payload: {
message: "this appear on notification tray"
}
}
Is there something wrong with Parse? Or is something I'm missing about Parse?
This is kind of an old post, but I ran across this issue using Xamarin and Parse Push notifications, but my work around may work for you (and others that may see this in the future).
I wound up broadcasting a local Push Notification after the Parse notification is received.
First assign a receiver to the Parse notification event:
ParsePush.ParsePushNotificationReceived += PushNotificationReceived;
Then in the method:
void PushNotificationReceived (object sender, ParsePushNotificationEventArgs e)
{
var payload = JObject.Parse (e.StringPayload); // Parse the JSON payload
Notification.Builder builder = new Notification.Builder (this);
builder.SetContentTitle (payload ["alert"].ToString ());
builder.SetContentText (payload ["androidDetail"].ToString ()); // Note: this is another field I added to the Parse Notification
builder.SetDefaults (NotificationDefaults.Sound | NotificationDefaults.Vibrate);
builder.SetSound (RingtoneManager.GetDefaultUri (RingtoneType.Notification));
builder.SetSmallIcon (Resource.Drawable.small_notification_icon);
var largeIcon = BitmapFactory.DecodeResource (Resources, Resource.Drawable.large_notification_icon);
builder.SetLargeIcon (largeIcon);
var notification = builder.Build ();
notification.Defaults |= NotificationDefaults.Vibrate;
NotificationManager notManager = (NotificationManager)GetSystemService (Context.NotificationService);
notManager.Notify (0, notification);
}
Hope this helps you and anyone else who comes across this!