Поиск…
Синтаксис
- 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 события, которые могут быть запущены уведомлением.
- Событие
click
.
Это событие будет запущено, когда вы нажмете на тело уведомления (исключая кнопку закрытия X и кнопку «Уведомления»).
Пример:
notification.onclick = function(event) {
console.debug("you click me and this is my event object: ", event);
}
- Событие
error
Уведомление будет запускать это событие всякий раз, когда произойдет что-то неправильное, например, невозможно отобразить
notification.onerror = function(event) {
console.debug("There was an error: ", event);
}