I have an in house application where I have the criticalAlert option setup within my application. I have confirmed that when I send the following with the pushy application, I am able to get the Critical Alert to work on the iOS application.
The issue is our internal server currently only sends the notifications to the Firebase Cloud Messaging, and I'm not able to configure the raw push payload to play the critical alert on the device.
Here is the example that Apple gave on how the push should look to APNS:
Here is what I send using the pushy app that works on the application:
{
"aps" : {
"content_available": true,
"priority": "high",
"alert" : "Your message Here",
"badge" : 1,
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
},
"data": {
"volume": 7,
"time_to_live": 900,
"id": 3618,
"type": "engagement",
"overrideMessage": "Testing oncall for iOS",
"case": "Test Case",
"repeatNumber": 3,
"customer": "Google"
}
}
}
Here is the current payload that we send to FCM and it works with the custom sound, but we really want the critical alert to be working since the push is for an on-call engagement:
{
"to": "firebaseToken",
"content_available": true,
"priority": "high",
"isCritical": "true",
"notification": {
"title": "Title in notification",
"body": "Body in notification",
"sound": "alert.wav",
"badge": "1",
"subtitle": "subtitle in notification"
},
"data": {
"volume": 7,
"time_to_live": 900,
"id": 3618,
"type": "engagement",
"overrideMessage": "Testing oncall for iOS",
"case": "Test Case",
"repeatNumber": 3,
"customer": "Google"
}
}
I have tried a large number of combinations on what to send to FCM but with no luck:
{
"to": "firebaseToken",
"apns": {
"headers": {
"apns-priority": "10"
},
"payload": {
"aps" : {
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
and
{
"aps" : {
"to": "firebaseToken",
"content_available": true,
"priority": "high",
"alert" : "Your message Here",
"badge" : 1,
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
and
{
"to": "firebaseToken",
"aps" : {
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
}
},
"notification": {
"badge": "1",
and
{
"to": "firebaseToken",
"isCritical": "true",
"content_available": true,
"notification": {
"badge": "1",
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
},
None of them have allowed the sound dictionary to be passed on to FCM.
I have also the the answer here but it doesn't solve my problem. as I require iOS to know that this push notification is critical and have the OS handle it and not my application.