Silent background push on iOS and Android - google-cloud-messaging

I am using GCM to deliver notifications to Android and iOS devices.
What I am looking for is to send in the same downstream message a silent push for both platforms.
I have tried with this message
"content_available":true,
"data":
{
//My data here
},
As you can see, no notification key is sended, iOS works fine and we are receiving push in the background but Android shows my app icon at the top bar and it is not calling the GCM receiver.
If I set content_available to false, Android works fine but not in iOS (either background or foreground).
What I supposed to do? Send to my server the OS of each device and send a different message for each system?
I have also tried to set aps dictionary in data payload, but still the same.
Thanks in advance.

Related

How to handle push notification when application is killed

Pardon me if this question has been asked before, I just couldn't find the answer.
I have an react native application, it has calling feature using .Net Core SignalR (For signalling) and webRTC for actual calling. There are three scenarios out of which my application works fine in two scenarios:
Application is in foreground: For this I simply inform other client that X is calling you (using signals from SignalR).
Application is in background: For this I send push notification to the client which is read by the application (notification listener) which in turns opens up the call accept/decline window.
I am struggling with scenario 3:
Application has been killed (from recent apps etc.) and is now not in background in this scenario I only receive the push notification but call windows doesn't open but if I open up that notification I can see the calling window as intended. I need a solution which will open up the calling window automatically just like it does in scenario 1 & 2. How can I listen to push notifications when the application is dead? So that I can show the call window?
I am looking for a solution that would preferably work both on Android and iOS and I am using FCM Push notifications. I am also open to solutions other than push notifications as long as they work correctly.
For supporting to android and iOS you can use
import messaging from "#react-native-firebase/messaging";
messaging().setBackgroundMessageHandler(async (remoteMessage) => {
// handle your notification message here
}

React native FCM push notifications not working in IOS Adhoc and TestFlight

Trying to implement push notification in a react native app using google cloud messaging. The notification works perfectly on android device in a simulator and in production. But for IOS, it works only locally only when its ran in a device. In adhoc or test flight, it does not work. I am using the APN key. Anyone faced the same issue? I can see a lot of posts in stack overflow regarding push notification not working for ios but none of the post were helpful for me.
Here's what I have done till now:
Generated an APN Authentication Key in developer.apple.com
Added that key to ios App in firebase.console.google.com
Run the app in a device using xcode - (Push notification works fine everytime.)
Archive the app in xcode and distribute to AdHoc and install the .ipa file in a device. (Push notification does not work)
Distribute to testflight and test the push notification - does not work
Why would it work in debug mode and not in adhoc or testflight.
I checked this:https://stackoverflow.com/a/48111671/8729976 . It says there is a single auth token for both production and development environment so I am guessing its definitely not the key.
Here are the sample responses:
When the push notification is delivered we get status 200 with this message: projects/myproject-name/messages/1602538922793273
When the push notification is not delivered, we still get status 200 with this message: projects/myproject-name/messages/0:1602541135340865%6b2d5f5c6b2d5f5c
Don't know what the second message means.

Not able to get notification in bar when app is opened

I have implemented push notification using gcm in my ionic 2 app, the notification works fine in background and foreground, but the issue is that when app is in foreground the notification doesn't appear in notification bar. Please help
You may refer with this forum:Ionic 2, Android notification received but banner not showing on device.
It stated that if the app is in the foreground, the notification is not shown in the system tray. That only happens when the notification is received while the app is in the background.
Additional references:
GCM notification doesn't show up in the notification bar. Android
push notification doesn't show up on status bar
Android - GCM push notifications not appearing in notifications list

What could cause ti.cloud to stop display Android Push Notifications (GCM) in status bar

I previously setup an Appcelerator Titanium project with push notifications (as per my Stack Overflow question How to configure Android Push Notifications (GCM) in Appcelerator Titanium Dashboard?) and for some months my Android app has been receiving the appropriate push notification from GCM, but I'm now receiving reports that this no longer works from end-users.
The flow usually goes like this...
Android app sends android push token to my Java server
Java server persists the Android push token
Java server sets up Amazon Web Service SNS endpoint for GCM and stores this endpoint for later use.
(some time passes)
Java server invokes Amazon Web Service SNS endpoint with a GCM payload
Amazon SNS passes message to Google GCM
GCM passes message to ti.cloud / ti.cloudpush
Phone displays push notification
The app does receive the push notification and I display an application dialog to show the contents of the message, but NO system-tray push notification is displayed, whereas I thought it was doing this in the past. No system sound is played either.
I can see that if the app is not running, then when the push notification is received the app is launched, but if the display isn't on (or locked) then the message will not be discovered for some time. I really need the native/system push notification to be in the tray.
Does anyone know why system / status notifications are not displayed? Should it be when using the ti.cloud / ti.cloudpush for Android?
Thanks
Rob.

android gcm push doesn't work with json tag notification

I create an android gcm client. I read this guide:
https://developers.google.com/cloud-messaging/android/client and i use this example https://github.com/googlesamples/google-services/tree/master/android/gcm
My app workes, it receives Push but only when our server application sends json with "data payload".. when our server sends json message with notification payload my android app does'nt receive push.
I read: "Use notifications when you want GCM to handle displaying a notification on your Android client app’s behalf," but it doesn't work in Android...
From what I can guess, you probably just don't have the icon key in your json which is required for Android but not for iOS, try to add something like "icon" : "#drawable/myIcon.png" in your notification dictionary. (I would have asked for a sample of your Json in the comment instead of guessing if I could but I'm still pretty new and can't comment everything yet).