Цель "Содержимое доступно" в Push Notification Json?

Цель состоит в том, чтобы отправить push-уведомление только со значком значка и ничего больше (без баннера).

Я интегрировал parse sdk, чтобы протестировать push-уведомления и отправить это push-уведомление

{
"alert" :"",
"badge" :"787",
"Content-available" : "1",
"sound" : ""
}

Таким образом, push-уведомление отправляется, когда приложение находится в фоновом режиме, на переднем плане и когда приложение убито. Цель стереть некоторые данные по прибытию push-уведомления с помощью клапана 78 значка была достигнута. Я отправляю такое же уведомление с "Content-available": "1" удалено, но все работало нормально, как и раньше.

Насколько я понимаю, "Доступный контент" заключался в том, что установка его значения в 1 позволит пуш-уведомление без значения оповещения.

Поэтому я запутался или упустил что-то, что могло бы знать значение "Контент-доступный" в этом push-уведомлении JSon.

Спасибо

3 ответа

Решение

Если вы предоставите этому ключу значение 1 (если пользователь откроет ваше приложение в фоновом режиме или возобновит работу), будет вызвано приложение: didReceiveRemoteNotification: fetchCompletionHandler:.

Согласно Программе удаленных уведомлений content-available определение

Задайте для этого ключа значение 1, чтобы указать, что доступен новый контент. Включение этого ключа и значения означает, что когда ваше приложение запускается в фоновом режиме или возобновляется, вызывается application:didReceiveRemoteNotification:fetchCompletionHandler:.

(Приложения для газетных киосков гарантированно смогут получать по крайней мере одно нажатие с помощью этой клавиши в течение 24-часового окна.)

TL;DR:

  • "content-available" : 0: По умолчанию; ваше приложение не будет уведомлено о доставке уведомления , если приложение не находится на переднем плане.
  • : ваше приложение будет уведомлено о доставке уведомления, если оно находится на переднем плане или в фоновом режиме (приложение будет разбужено).

Единственный раз, когда вам нужно использовать "content-available" : 1предназначен для фоновых уведомлений об обновлениях :

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

Однако это НЕ всегда означает, что это уведомление будет невидимым для пользователя:

Если вместе с фоновым обновлением имеются видимые пользователю обновления, вы можете установить клавиши оповещения, звука или значка в словаре aps, если это необходимо.

По умолчанию, "content-available"установлен на 0. Эти «обычные» уведомления не сразу уведомляют приложение, ЕСЛИ приложение не находится на переднем плане. Вместо этого эти «обычные» уведомления уведомляют приложение, когда пользователь нажимает на них или выбирает параметр с помощью «тактильного касания» в уведомлении.

Уведомления об обновлениях в фоновом режиме доставляютсяapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:):

в отличие от application(_:didReceiveRemoteNotification:)метод, который вызывается только тогда, когда ваше приложение работает на переднем плане, система вызывает этот метод, когда ваше приложение работает на переднем плане или в фоновом режиме.

Примечание. Существует ключевое различие между «вашим приложением» и «устройством»: устройство покажет уведомление, если полезная нагрузка запрашивает его отображение, но это не всегда означает, что «ваше приложение» будет уведомлено о доставке. этого уведомления (будет запущен код "вашего приложения"). Вот где "content-available": "1"приходит: «ваше приложение» всегда будет уведомлено, если оно не было прекращено.

Короткий ответ: для меня я просто использовал "content_available": "1" или "content_available": true для возобновления фонового режима / режима выхода в iOS. Обратите внимание, что в моем случае это подчеркивание, а не дефис.

В моем конкретном сценарии мое приложение было создано на основе реакции, и я использовал https://rnfirebase.io/ для push-уведомлений.

Вот полное объяснение этого: https://rnfirebase.io/messaging/usage

в IOS content_available ":" 1

эквивалент в приоритете Android : 'высокий',

В обоих случаях фоновое сообщение вызовет метод onMessage(), когда приложение возобновит работу из фона, поэтому программа может запускать определенный код оттуда.

Вот пример отправки push-уведомления с использованием CURL:

#curl -H "Content-type: application / json" -H "Authorization: key = # MyAuthHashCode #" -X POST -d '{"to": "/ themes/#thetopicnumber#","notification": { "title": " сообщение для темы "," body ":" bodytext "," content_available ":" true "}}' https://fcm.googleapis.com/fcm/send

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