Варианты закрытия уведомления - PullRequest
1 голос
/ 08 мая 2019

Я создаю приложение Electron с HTML5 API уведомлений и хотел бы, чтобы каждое уведомление отображало пользователю несколько параметров при закрытии уведомления следующим образом:

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

Атрибут actions в объекте options (второй аргумент, передаваемый конструктору Notification) казался многообещающим, но отсутствие документации по объекту "NotificationAction" затрудняет понимание того, как можно реализовать это особенность.

Из документации MDN:

actions: массив NotificationActions, представляющий действия доступно пользователю при представлении уведомления. Это варианты, которые пользователь может выбрать для того, чтобы действовать на действие в контекст самого уведомления. Название действия отправлено обработчик уведомлений работника службы, чтобы он знал, что действие было выбранный пользователем.

В настоящее время у меня есть только одна опция («Закрыть») при закрытии уведомления.

enter image description here* * 1030

Любые предложения будут оценены.

1 Ответ

0 голосов
/ 08 мая 2019

Действия по уведомлению широко не поддерживаются на момент написания этой статьи.Browser Compatability

Для браузеров, которые его поддерживают, вы можете использовать его следующим образом:

self.registration.showNotification('New message from Alice', {
    actions: [
        {action: 'like', title: 'Like'},
        {action: 'reply', title: 'Reply'}
    ]
});

Затем, чтобы получить то, на что пользователь нажал, что-токак это:

self.addEventListener('notificationclick', function(event) {
    var messageId = event.notification.data;

    event.notification.close();

    if (event.action === 'like') {
        silentlyLikeItem();
    }
    else if (event.action === 'reply') {
        clients.openWindow("/messages?reply=" + messageId);
    }
    else {
        clients.openWindow("/messages?reply=" + messageId);
    }
}, false);

Вы можете прочитать подробности на https://developers.google.com/web/updates/2016/01/notification-actions

Чтобы увидеть это в действии, вы можете проверить https://tests.peter.sh/notification-generator/#actions=3

...