Как вы отправляете веб-push-уведомления через FCM с сервера с действиями? - PullRequest
0 голосов
/ 16 января 2019

Я успешно отправляю push-уведомления через сервер FCM с помощью Firebase. Одна вещь, которую я пропускаю, хотя это отправка событий вместе с этим.

Когда я нажимаю на уведомление, оно ничего не делает (даже не берет меня на сайт). Как мне включить что-то подобное?

В настоящее время я передаю объект JSON, такой как

{
    "to": "[add your token]",
    "notification": {
        "title": "Working Good",
        "body": "[add your message]"
    },
    "priority": "high"
}

1 Ответ

0 голосов
/ 17 января 2019

В сервисном работнике прослушайте глобальное событие push, чтобы обработать ваше уведомление вручную. Затем вызовите метод showNotification() для отображения уведомления. В объекте параметров вы можете указать список кнопок действий, которые будут иметь ваши уведомления.

self.addEventListener("push", event => {

    const {title, body} = JSON.parse(event.data.text());
    event.waitUntil(self.registration.showNotification(title, {
        body,
        actions: [{
            action: "delete",
            title: "Delete"
        }, {
            action: "markAsRead",
            title: "Mark as read"
        }],
    }));

});

Прослушивание события notificationclick для обработки нажатий на кнопки действий или само уведомление:

self.addEventListener("notificationclick", event => {

    // Hide the notification
    event.notification.close();

    switch (event.notification.data.action) {

        // If an action button has been clicked
        case "delete":
        case "markAsRead":
            // Send some request to your server
            break;

        // User haven't clicked any action buttons, only the notification itself
        default:
            // Opening a tab
            clients.openWindow("/");

    }

});
...