Технология Web-уведомлений

  Технология Web-уведомлений строится на одном объекте - Notification, и предназначена для вывода на условный рабочий стол пользовательского устройства отображения заданного контента - уведомлений.
  Эти уведомления могут выводиться только с согласия пользователя.
  Notification
  Notification - Является интерфейсом к Web-уведомлению.
  Экземпляр доступен:

  1. В выражении

      new Notification(Заголовок[, Опции])
    где:
    • new - Ключевое слово.
    • Notification - Ключевое слово. Имя функции конструктора Web-уведомлений.
    • Заголовок - Значение заголовка уведомления, заданное в любом строковом формате.
        Заголовок будет выведен в начале уведомления.
    • Опции - Опции уведомления.
        Задаются в формате экземпляра объекта со следующими свойствами:
      • body - Значение текста уведомления, заданное в любом строковом формате.
      • data - Произвольные данные, которые будут связаны с уведомлением. Любой тип данных.
      • dir - Направление отображения контента уведомления, заданное в любом строковом формате.
      • icon - URL-адрес картинки-"иконки", которая отобразится как часть уведомления, заданный в любом строковом формате.
      • lang - Код языка текста уведомления, заданный в любом строковом формате.
      • noscreen - Логическое значение устанавливающее возможность включения экрана пользователя с появлением уведомления, вне зависимости от настроек устройства пользователя. (По умолчанию - false - экран будет включён.)
      • requireInteraction - Логическое значение устанавливающее возможность уведомления оставаться активным до тех пор, пока пользователь не просмотрит или отклонит его. (По умолчанию - false - некоторые браузеры будут автоматически минимизировать уведомление через несколько секунд после его появления.)
      • renotify - Логическое значение устанавливающее возможность извещения пользователя об изменении скриптом текста уведомления. (По умолчанию - false - пользователь не будет извещаться.)
      • silent - Логическое значение устанавливающее возможность извещения пользователя о появлении уведомления звуком или вибрацией, вне зависимости от настроек устройства пользователя. (По умолчанию - false - звук и(или) вибрация будут сопровождать уведомление.)
      • sound - URL-адрес аудио файла, которым будет озвучено появление уведомление, заданный в любом строковом формате.
      • sticky - Логическое значение устанавливающее, как это уведомление может быть устранено пользователем. (По умолчанию - false - пользователь может устранить уведомление без дополнительного gодтверждения с его стороны.)
      • tag - Идентификатор уведомления, заданный в любом строковом формате. (Уведомления с одинаковым идентификатором не размножаются на пользовательском устройстве отображения, а заменяют друг друга в порядке их отправки.)
      • vibrate - Устанавливает шаблон вибрации, которая будет сопровождать это уведомление на устройстве пользователя.
  2.   Создание нового экземпляра объекта Notification инициирует вывод нового Web-уведомления, если это разрешено свойством permission.
  Notification свойства.
  body - Содержит значение заданного текста этого уведомления.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.body

Значения формата записи:

  data - Содержит значение заданных данных, связанных с этим уведомлением.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.data

Значения формата записи:

  dir - Содержит значение заданного направления текста этого уведомления.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.dir

Значения формата записи:

  icon - Содержит значение адреса заданной иконки, связанной с этим уведомлением.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.icon

Значения формата записи:

  lang - Содержит значение заданного языка текста этого уведомления.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.lang

Значения формата записи:

  noscreen - Содержит значение заданного параметра noscreen этого уведомления.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.noscreen

Значения формата записи:

  onclick - Содержит функцию, которая должна быть вызвана, если пользователь "кликнет" мышкой на уведомлении.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.onclick[ = Функция]

Значения формата записи:

  onerror - Содержит функцию, которая должна быть вызвана, если, при выводе уведомления, произошла ошибка.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.onerror[ = Функция]

Значения формата записи:

  requireInteraction - Содержит значение заданного параметра requireInteraction этого уведомления.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.requireInteraction

Значения формата записи:

  renotify - Содержит значение заданного параметра renotify этого уведомления.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.renotify

Значения формата записи:

  silent - Содержит значение заданного параметра silent этого уведомления.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.silent

Значения формата записи:

  sound - Содержит значение адреса заданной мелодии, связанной с этим уведомлением.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.sound

Значения формата записи:

  sticky - Содержит значение заданного параметра sticky этого уведомления.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.sticky

Значения формата записи:

  tag - Содержит значение заданного идентификатора этого уведомления.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.tag

Значения формата записи:

  title - Содержит значение заданного заголовка этого уведомления.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.title

Значения формата записи:

  vibrate - Содержит значение заданного шаблона вибрации, связанного с этим уведомлением.
  Значение имеет формат массива.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.vibrate

Значения формата записи:

  Notification методы.
  addEventListener - Устанавливает функцию обработчик событий для уведомления.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.addEventListener(Событие, Функция, false)

Значения формата записи:

  • Экземпляр объекта Notification - Любой операнд значения со значением экземпляра объекта Notification.
  • . - Оператор доступа к методу объекта.
  • addEventListener - Ключевое слово.
  • ( - Оператор группировки. Ключевое слово в этом формате.
  • Событие - Имя события, предусмотренного для объекта Notification, заданное в любом строковом формате.
  • Функция - Любой операнд значения со значением функция.
      Значением первого аргумента этой функции, при ее вызове браузером, всегда является экземпляр объекта Event обрабатываемого события.
      Одна функция-обработчик устанавливается методом addEventListener только один раз и повторные вызовы метода для этой же функции не имеют значения.
      Однако другие функции могут быть установлены экземпляру объекта Notification методом addEventListener для этого же события, причем выполняться, в случае возникновения события, они будут в том же порядке, как записаны в скрипте.
  • false - Логическое значение.
  • , - Оператор группировки. Ключевое слово в этом формате.
  • ) - Оператор группировки. Ключевое слово в этом формате.
  close - Закрывает это уведомление.
  Возвращает значение undefined.
  Вызов метода close делает недоступным соответствующий интерфейс Notification.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.close()

Значения формата записи:

  dispatchEvent - Инициализирует возникновение заданного события в этом уведомлении.
  Возвращает значение undefined.
  Инициализированное событие не происходит на самом деле, но инициализация приводит к вызову его обработчика.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.dispatchEvent(Событие)

Значения формата записи:

  removeEventListener - Отменяет функцию обработчик событий установленную методом addEventListener для уведомления.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • Экземпляр объекта Notification.removeEventListener(Событие, Функция, false)

Значения формата записи:

  Функция конструктор Web-уведомлений
  Функция конструктор Web-уведомлений - Создаёт уведомление на экране устройства пользователя.
  Возвращает экземпляр объекта Notification.
  Экземпляр доступен:

  1. В переменной с зарезервированным именем Notification
  Функция конструктор Web-уведомлений, как объект Function, имеет свои собственные свойство и метод.
  Конструктор Web-уведомлений свойства.
  permission - Содержит индикатор разрешения на вывод уведомлений на локальном устройстве, с которым согласен пользователь.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Notification.permission

Значения формата записи:

  • Notification - Ключевое слово.
  • . - Оператор доступа к свойству объекта.
  • permission - Ключевое слово.
      Ссылается на одно из значений:
    • granted - Пользователь разрешил вывод уведомлений.
    • denied - Пользователь не разрешил вывод уведомлений.
    • default - Разрешение пользователя ещё не было запрошено. Если разрешение и не будет запрошено, то будет считаться, что его и нет.
  Конструктор Web-уведомлений методы.
  requestPermission - Выводит запрос пользователю для разрешения на вывод уведомления.
  Возвращает сссылку на экземпляр объекта Promise.
  Соответствующее "обещание" может быть выполнено, если пользователь даст или не даст разрешение, или останется не выполненным.
  То есть в результате запроса может быть изменено значение свойства permission, и аргумент - функции для результата этого "обещания" получит текущее значение свойства permission.

  Поэтому отправку сообщения лучше делать в теле - функции для результата этого "обещания".

Формат записи в коде скрипта:

  • Notification.requestPermission()

Значения формата записи:


Пример:

<TEXTAREA ID="POST" PLACEHOLDER="Напишите себе сообщение" ></TEXTAREA><BR><BR>
<BUTTON ID="START">Отправить</BUTTON>
.....
<SCRIPT>
 var Not = null;
 var Opt =
   {
     body: 'рак',
     data: 'красный',
     icon: '../content/pauk1.jpg',
     tag: 'tag0',
   };
 var START = document.getElementById("START");
 var POST = document.getElementById("POST");
 var SZ = function(X) { Not = new Notification("Вам от вас", Opt); };
 var send = function ()
   {
     Opt.body = POST.value;
     Notification.requestPermission().then(SZ);
   };
 START.onclick = send;

</SCRIPT>

Результат.