Обмен сообщениями в Firebase - что такое "content_available": правда

Я видел много примеров, как

{ 
  "to" : "egu9jGiMcew:APA91bFv2Rewdz.....KZZmEURvbq-aA2", 
  "data": { 
    "id": 19, 
    "title": "Title test", 
    "msg": "Text of the test", 
    "code": 2, 
    "infosUrl": "ttp://www.secondguide.tours", 
    "longitude": 5.5, 
    "latitude": 44.5, 
    "eventLocation": "nowhere", 
    "startDate": "24/07/2016", 
    "endDate": "25/07/2016", 
  }, 
  "delay_while_idle" : false, 
  "priority" : "high", 
  "content_available" : true 
} 

Я не получил цель

"delay_while_idle" : false,    
"priority" : "high",   
"content_available" : true

в этом, кто-нибудь может объяснить?

1 ответ

Решение

Если вы сначала проверили официальную документацию, вы увидите соответствующее описание:

content_available - В iOS используйте это поле для представления содержимого, доступного в полезной нагрузке APN. Когда отправляется уведомление или сообщение, и для него установлено значение true, неактивное клиентское приложение пробуждается, и сообщение отправляется через APN в виде тихого уведомления, а не через сервер соединений FCM. Обратите внимание, что тихие уведомления в APN не гарантированно доставляются и могут зависеть от таких факторов, как включение пользователем режима пониженного энергопотребления, принудительное завершение работы приложения и т. Д. В Android сообщения данных по умолчанию пробуждают приложение по умолчанию. На Chrome в настоящее время не поддерживается.

Заголовок вашего поста спрашивает только о content_available, но только чтобы покрыть два других, priority (также из документов):

Устанавливает приоритет сообщения. Допустимые значения: "нормальный" и "высокий". На iOS они соответствуют приоритетам APN 5 и 10.

По умолчанию уведомления отправляются с высоким приоритетом, а сообщения с данными отправляются с обычным приоритетом. Обычный приоритет оптимизирует потребление батареи клиентским приложением и должен использоваться, если не требуется немедленная доставка. Для сообщений с нормальным приоритетом приложение может получить сообщение с неопределенной задержкой.

Когда сообщение отправляется с высоким приоритетом, оно отправляется немедленно, и приложение может отображать уведомление.

delay_while_idle давно устарел, поэтому я не стал бы беспокоиться о его поведении.

Другие вопросы по тегам