Как отправить молчаливое нажатие в приложение Javascript моего браузера? - PullRequest
0 голосов
/ 05 октября 2018

Я использую Firebase, но я не уверен, что это актуально.

Я пытаюсь отправить тихое нажатие на мое приложение, запущенное в браузере (это одностраничное приложение JS / React), и в соответствии ск документации по Firebase FCM все, что мне нужно сделать, это отправить сообщение с ключом «data».

Однако это не сработает для меня: если в моем сообщении нет ключа «уведомлений», он не получен браузером.

Чтобы проверить это, я запускаю 2 команды curl:

curl -H "Content-type: application/json" -H "Authorization:key=<MYKEY>"  -X POST -d '{ "data": { "foo": "1","bar": "2"},"to" : "<TOKEN>", "notification": { "data" : "Some data" } }' https://fcm.googleapis.com/fcm/send

curl -H "Content-type: application/json" -H "Authorization:key=<MYKEY>"  -X POST -d '{ "data": { "foo": "1","bar": "2"},"to" : "<TOKEN>" }' https://fcm.googleapis.com/fcm/send

Первая из них поступает в браузер, когда приложение «открыто».и перейдет в центр уведомлений, когда приложение будет «закрыто» (либо вкладка закрыта, либо браузер закрыт).

Второй ничего не достигает (но ответ на вызов curl дает «success»:1, «сбой»: 0)

Что я делаю не так?Это просто не поддерживается WebPush?Я читаю противоречивую информацию онлайн.

Бывают случаи, когда тихий толчок действительно полезен для обновления состояния клиента в браузере.Например, если я создаю приложение чата с каналами / группами, я хотел бы иметь возможность отправлять обновления о состоянии чата клиенту без уведомления пользователя: я не хочу, чтобы пользователь виделНапример, явное уведомление «поверх» при обновлении участников группы чата: я просто хочу обновить его в пользовательском интерфейсе браузера, особенно если приложение находится на переднем плане.

1 Ответ

0 голосов
/ 06 октября 2018

Я решил проблему, зарегистрировав обработчик с помощью setBackgroundMessageHandler () Firebase в моем сервисном работнике.

Документ Firebase утверждает, что это требуется только для фоновой обработки толчков «только данные» (т. Е. Без вывода сообщений), нооказывается, что это требуется и для обработки на переднем плане (даже если ваш обработчик ничего не делает).

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

...