--- title: Уведомление slug: Web/API/notification translation_of: Web/API/Notification ---
{{APIRef("Web Notifications")}}
Интерфейс Notification
из Notifications API используется для настройки и отображения уведомлений на рабочий стол пользователя.
{{AvailableInWorkers}}
Notification
.Следующие свойства доступны только для самого объекта Notification
.
denied
- Пользователь отказался от отображения уведомлений.granted
- Пользователь дал согласие на отображение уведомлений.default
- Выбор пользователя неизвестен, и поэтому браузер будет действовать так, как если бы значение было denied
Следующие свойства доступны только для экземпляров объекта Notification
.
Следующие свойства указаны в наиболее актуальной спецификации, но пока что не поддерживаются браузерами. Рекомендуем регулярно проверять актуальность этой информации, и если их статус изменится, пожалуйста, просим оповестить нас.
{{domxref("Notification.noscreen")}} {{readonlyinline}}
Следующие обработчики событий все ещё поддерживаются, как указано в разделе {{anch("browser compatibility")}} ниже, но более не входят в актуальную спецификацию. Небезосновательно можно предположить, что они устарели и могут перестать работать в будущих версиях браузеров.
Следующие методы доступны только для самого объекта Notification
.
Следующие методы доступны только для экземпляров объекта Notification
, либо через его прототип
. Объект Notification
также наследует методы интерфейса {{domxref("EventTarget")}}.
Базовый HTML:
<button onclick="notifyMe()">Notify me!</button>
Отправить уведомление можно следующим образом — ниже представлен довольно подробный и полный набор кода, который вы могли бы использовать для того, чтобы сначала проверить поддержку уведомлений, затем проверить, позволено ли данному источнику отправлять уведомления, и наконец, запросив разрешение, если требуется, отправить уведомление.
function notifyMe() { // Проверка поддержки браузером уведомлений if (!("Notification" in window)) { alert("This browser does not support desktop notification"); } // Проверка разрешения на отправку уведомлений else if (Notification.permission === "granted") { // Если разрешено, то создаём уведомление var notification = new Notification("Hi there!"); } // В противном случае, запрашиваем разрешение else if (Notification.permission !== 'denied') { Notification.requestPermission(function (permission) { // Если пользователь разрешил, то создаём уведомление if (permission === "granted") { var notification = new Notification("Hi there!"); } }); } // В конечном счёте, если пользователь отказался от получения // уведомлений, то стоит уважать его выбор и не беспокоить его // по этому поводу. }
{{EmbedLiveSample('%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80', '100%', 30)}}
В большинстве случаев вам не надо быть столь многословными. Например в нашем демо Emogotchi (исходный код), мы просто запускаем {{domxref("Notification.requestPermission")}} несмотря ни на что, чтобы быть уверенными, что мы сможем получить разрешение на отправку уведомлений (тут используется синтаксис новейшего promise-based метода):
Notification.requestPermission().then(function(result) {
console.log(result);
});
Затем мы запускаем простую функцию spawnNotification()
, когда мы хотим вывести уведомление, передающую аргументы для указания тела, иконки и заголовка, которые нам нужны, а затем она создаёт необходимый объект параметров options
и запускает уведомление с помощью конструктора {{domxref("Notification.Notification","Notification()")}}.
function spawnNotification(body, icon, title) {
var options = {
body: body,
icon: icon
};
var n = new Notification(title, options);
}
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('Web Notifications')}} | {{Spec2('Web Notifications')}} | Уровень жизни |
{{Compat("api.Notification")}}