Приложение React Native Wake Up с использованием push-уведомлений FCM

Можно ли запускать / пробуждать приложение из фона, когда приходит push-уведомление, без необходимости нажатия пользователем на панель уведомлений? если можно то как? особенно на IOS.. (извините за плохой английский)


person Redha Putra    schedule 04.04.2018    source источник
comment
Если ваше приложение находится в фоновом режиме, оно все еще может выполнять некоторую логику, но вы не можете открыть само приложение, как говорит Dheeraj D ниже. Я использую react-native-push-notification, а точнее событие onNotification. Ему передается параметр со свойством foreground — здесь можно проверить, было ли получено уведомление, и находится ли приложение на переднем или заднем плане.   -  person Dan    schedule 04.04.2018


Ответы (2)


Вы не можете запустить свое приложение, когда приходит push-уведомление без взаимодействия с пользователем.

Но вы можете разбудить свое приложение, когда устройство получает push-уведомление. Для этого вам нужно добавить ключ content-available со значением 1 в словарь aps. Например

{
   "aps" : {
       "content-available" : 1
   },
   "acme1" : "bar",
   "acme2" : 42
}

Поскольку вы используете FCM для отправки push-уведомлений, его полезная нагрузка будет выглядеть примерно так:

{
"to" : "<device>",
"priority": "high",
"content_available": true, <-- this key is converted to 'content-available:1'
"notification" : {
  "body" : "noti body",
  "title" : "noti title",
  "link": "noti link "
}
}

Важная часть здесь content_available и priority.

И убедитесь, что в разделе возможностей проекта включены Фоновые режимы и установлен флажок удаленное уведомление.

Ссылки: Руководство по программированию локальных и удаленных уведомлений , ссылка на Stackoverflow1, Firebase FCM

person Sunil Sharma    schedule 04.04.2018

Нет, это невозможно в iOS. Вы не можете запустить приложение, не нажав на баннер уведомлений или просто используя APN.

person Dheeraj D    schedule 04.04.2018
comment
спасибо за ответ, есть ссылки на возможные способы запуска приложения? - person Redha Putra; 04.04.2018
comment
Нет. Это невозможно. - person Dheeraj D; 04.04.2018