Firebase FCM тихие push-уведомления для iOS

у меня проблема с тихими уведомлениями на iOS.

когда мое приложение находится в фоновом режиме, я не получаю тихое уведомление, отправленное FCM. Но если я попытаюсь отправить непосредственно в APNS, уведомление будет успешно получено.

это JSON, отправленный в FCM:

{ 
"to" : "<token>",
"priority": "high",
"content_available": true,
"data" : {
  "<key>" : "<string>",
  "<key2>" : "<string>"
}

}

это JSON, отправленный непосредственно в APNS:

{
  "aps": {
    "content-available": 1
  },
  "<key>": "<string>",
  "<key>": "<string>"
}

Я уже пытался удалить ключ "приоритет", потому что я видел, как кто-то сказал, что я не следует устанавливать приоритет, если "content_available" уже установлен. Это не сработало.

  1. у меня есть" Push-уведомления", включенные в XCode > возможности.
  2. у меня есть" удаленные уведомления", проверенные в фоновых режимах в XCode > возможности.
  3. уведомления FCM работают нормально, когда приложение находится на переднем плане, а иногда, когда приложение находится в фоновом режиме.

3 ответов


удалить "уведомления" пара ключевых значений и добавить "content_available": true

Это будет выглядеть так

{ 
    "to" : "...",
    "priority": "high",
    "content_available": true,
    "data" : {
      ....
    }
}

Это должно сделать его бесшумным APNS, и вам нужно обработать соответствующий метод делегата APNS.

вам нужно будет обработать это через делегатов См. эту документацию firebase для деталей:https://firebase.google.com/docs/cloud-messaging/concept-options


Я нашел обходной путь. Я помещаю пустое значение для "звука" в поле "уведомление", и тихие уведомления доставляются даже тогда, когда приложение находится в фоновом режиме.

{ 
    "to" : "...",
    "priority": "high",
    "notification": {
        "sound": ""
    },
    "data" : {
      ....
    }
}

моя догадка заключается в том, что Apple не разрешает тихие уведомления с "высоким" приоритетом и каким-то образом"уведомление": {"звук":""} обманывает APNS, что это уведомление не является тихим.


пожалуйста документация на стороне сервера и сделайте настройку для json, как описано в документе. Я столкнулся с аналогичной проблемой ранее и решил проблему, идущую в этом документе.

    {
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
  "priority" : "high",
  "notification" : {
    "body" : "This week's edition is now available.",
    "title" : "NewsMagazine.com",
    "icon" : "new"
  },
  "data" : {
    "volume" : "3.21.15",
    "contents" : "http://www.news-magazine.com/world-week/21659772"
  }
}

у вас отсутствовал ключ уведомления. который используется apns для получения уведомлений на фоне.