Как работают уведомления о загрузке в стеке?

Возможно, это довольно большой и двусмысленный вопрос:

В чатах с переполнением стека есть кнопка "включить уведомления на рабочем столе", которая покажет что-то на панели задач, когда кто-то ответит вам.

Каким механизмом это работает? Мне всегда было любопытно.

Как веб-сайт получает доступ к системному лотку?

Ответ 1

Он использует объект Notification (т.е. var n = new Notification("Hello");) для предоставления локальных уведомлений для каждого веб-сайта. Каждый браузер реализует стандарт по-разному (см. Chrome, Firefox и Safari), но все они работают по существу одинаково, отправляя уведомления на основе разрешений, которые у них есть (window.Notification.permission), которые могут быть default (не заданы, в которых если вы window.Notification.requestPermission();), granted или denied. Opera и Internet Explorer в настоящее время не поддерживают уведомления на рабочем столе.

Ответ 2

Они называются уведомлениями о работе рабочего стола, которые используют API уведомлений.

В принципе, сайт проверяет поддержку API уведомлений, затем пользователь предоставляет или отказывает в разрешении на просмотр веб-сайта для уведомлений.

Вот дополнительная информация о том, как работает API.

Ответ 3

Это с помощью WebSockets - веб-API. На самом деле существует постоянное соединение между клиентом и сервером. А также обе стороны могут начать отправлять данные в любое время.