- Создать Service-Workers на клиенте и всю необходимую логику для подписки на PUSH уведомление.
- Сгенерировать публичный и приватный ключ. Для этого можете воспользоваться данным сайтом
- Заполнить все переменные окружения в файле .env
- Выполнить следующие команды
npm install
npm run start
POST-запрос /subscription
В качестве body параметра надо передать на сервер:
body: {
subscription: "<await registration.pushManager.subscribe>"
data: {
title: "<String>"
options: {
"//": "Visual Options",
"body": "<String>",
"icon": "<URL String>",
"image": "<URL String>",
"badge": "<URL String>",
"vibrate": "<Array of Integers>",
"sound": "<URL String>",
"dir": "<String of 'auto' | 'ltr' | 'rtl'>",
"//": "Behavioural Options",
"tag": "<String>",
"data": "<Anything>",
"requireInteraction": "<boolean>",
"renotify": "<Boolean>",
"silent": "<Boolean>",
"//": "Both Visual & Behavioural Options",
"actions": "<Array of Strings>",
"//": "Information Option. No visual affect.",
"timestamp": "<Long>"
}
}
}
Обратно POSH-запрос вернёт, в случае успешной отправки уведомления через webPush.sendNotification (по факту вам результат этого запроса вообще не нужен):
{ success: true }
webPush.sendNotification передаст вашему событию в Service-Worker следующие данные:
data: {
title: "<String>"
options: {
"//": "Visual Options",
"body": "<String>",
"icon": "<URL String>",
"image": "<URL String>",
"badge": "<URL String>",
"vibrate": "<Array of Integers>",
"sound": "<URL String>",
"dir": "<String of 'auto' | 'ltr' | 'rtl'>",
"//": "Behavioural Options",
"tag": "<String>",
"data": "<Anything>",
"requireInteraction": "<boolean>",
"renotify": "<Boolean>",
"silent": "<Boolean>",
"//": "Both Visual & Behavioural Options",
"actions": "<Array of Strings>",
"//": "Information Option. No visual affect.",
"timestamp": "<Long>"
}
}