Как отправить push-уведомление только на переднем плане - PullRequest
0 голосов
/ 02 сентября 2018

Я отправляю push-уведомление с сервера node.js следующим образом:

const message = {
                android: {
                    ttl: 3600 * 1000,
                    notification: {
                        icon: 'stock_ticker_update',
                        color: '#f45342',
                        sound: "notify"
                    }
                },
                token: user.deviceToken,
                ...notification
            };
return await adminCli.messaging().send(message);

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

1 Ответ

0 голосов
/ 02 сентября 2018

По документам:

onMessageReceived предоставляется для большинства типов сообщений со следующими исключениями:

  • Уведомления доставляются, когда ваше приложение находится в фоновом режиме . В этом случае уведомление доставляется в системный трей устройства. При нажатии пользователем на уведомление по умолчанию открывается панель запуска приложения.
  • Сообщения с уведомлением и полезной нагрузкой данных, как в фоновом, так и на переднем плане . В этом случае уведомление доставляется в системный трей устройства, а полезная нагрузка данных доставляется в дополнениях к назначению вашего средства запуска.

Поэтому, если вы используете NotificationMessages, вы не можете контролировать поведение, когда приложение находится в фоновом режиме, поскольку оно будет обрабатываться в системном трее.

Я рекомендую вам использовать DataPlayload Message, а в методе onMessageReceived решите показать уведомление или проигнорировать его.

Вы можете прочитать больше здесь

EDIT

В случае, если неясно, я имею в виду использование сообщения ТОЛЬКО ДАННЫЕ и не использовать уведомление при создании сообщения на вашем сервере

...