Цель "Содержимое доступно" в 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