У меня есть собственное приложение, в котором в моем приложении настроена опция критического оповещения.Я подтвердил, что когда я отправляю следующее с помощью pushy-приложения, я могу заставить Critical Alert работать с приложением iOS.
Проблема в том, что наш внутренний сервер в настоящее время только отправляет уведомления в Firebase Cloud Messaging, и я не могу настроить сырую полезную нагрузку push для воспроизведения критического предупреждения на устройстве.
Вот пример , который Apple дала о том, как push должен выглядеть APNS:
Вот то, что я отправляю с помощью напористого приложения, которое работает в приложении:
{
"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"
}
}
}
Вот текущая полезная нагрузка, которую мы отправляем в FCM, и она работает с нестандартным звуком, но мы действительно хотим, чтобы критическое оповещение работало, так как нажатие на вызов по вызову:
{
"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"
}
}
Я перепробовал большое количество комбинаций для отправки в FCM, но безуспешно:
{
"to": "firebaseToken",
"apns": {
"headers": {
"apns-priority": "10"
},
"payload": {
"aps" : {
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
и
{
"aps" : {
"to": "firebaseToken",
"content_available": true,
"priority": "high",
"alert" : "Your message Here",
"badge" : 1,
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
и
{
"to": "firebaseToken",
"aps" : {
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
}
},
"notification": {
"badge": "1",
и
{
"to": "firebaseToken",
"isCritical": "true",
"content_available": true,
"notification": {
"badge": "1",
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
},
Ни один из них не позволил передать звуковой словарь в FCM.
У меня также есть ответ здесь , но это не решает мою проблему,поскольку я требую, чтобы iOS знала, что это push-уведомление является критически важным, и ОС должна обрабатывать его, а не мое приложение.