Поиск…


Синтаксис

  • Notification.requestPermission ( обратный вызов )
  • Notification.requestPermission (). Then ( callback , rejectFunc )
  • новое уведомление ( название , параметры )
  • уведомление .close ()

замечания

API уведомлений был разработан, чтобы разрешить браузеру уведомлять клиента.

Поддержка браузерами может быть ограничена. Также поддержка операционной системы может быть ограничена.

В следующей таблице приведен обзор ранних версий браузера, которые поддерживают оповещения.

Хром край Fire Fox Internet Explorer опера опера мини Сафари
29 14 46 никакой поддержки 38 никакой поддержки 9,1

Запрос разрешения на отправку уведомлений

Мы используем Notification.requestPermission чтобы спросить пользователя, хочет ли он получать уведомления с нашего сайта.

Notification.requestPermission(function() {
    if (Notification.permission === 'granted') {
        // user approved.
        // use of new Notification(...) syntax will now be successful
    } else if (Notification.permission === 'denied') {
        // user denied.
    } else { // Notification.permission === 'default'
        // user didn’t make a decision.
        // You can’t send notifications until they grant permission.
    }
});

Так как Firefox 47. Метод .requestPermission также может вернуть обещание при обработке решения пользователя о предоставлении разрешения

Notification.requestPermission().then(function(permission) {
    if (!('permission' in Notification)) {
        Notification.permission = permission;
    }
    // you got permission !
    }, function(rejection) {
    // handle rejection here.
    }
);

Отправка уведомлений

После того как пользователь одобрил запрос на разрешение на отправку уведомлений , мы можем отправить простое уведомление, в котором говорится «Привет пользователю»:

new Notification('Hello', { body: 'Hello, world!', icon: 'url to an .ico image' });

Это отправит уведомление, подобное этому:

Привет

Привет, мир!

Закрытие уведомления

Вы можете закрыть уведомление, используя метод .close() .

let notification = new Notification(title, options);
// do some work, then close the notification
notification.close()

Вы можете использовать функцию setTimeout для автоматического закрытия уведомления в будущем.

let notification = new Notification(title, options);
setTimeout(() => {
    notification.close()
}, 4000);

Вышеприведенный код вызовет уведомление и закроет его через 4 секунды.

События оповещения

Спецификации API уведомлений поддерживают 2 события, которые могут быть запущены уведомлением.

  1. Событие click .

Это событие будет запущено, когда вы нажмете на тело уведомления (исключая кнопку закрытия X и кнопку «Уведомления»).

Пример:

notification.onclick = function(event) {
    console.debug("you click me and this is my event object: ", event);
}
  1. Событие error

Уведомление будет запускать это событие всякий раз, когда произойдет что-то неправильное, например, невозможно отобразить

notification.onerror = function(event) {
    console.debug("There was an error: ", event);
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow