Перейти к основному содержанию

Notification (Оповещения)

Создание уведомлений на рабочем столе ОС

Процесс: Главный

Использование в Рендерер-процессе

Если вы хотите отобразить уведомления в Рендерер-процессе, вы должны использовать HTML5 Notification API

Class: Notification / Уведомление

Создание уведомлений на рабочем столе ОС

Процесс: Главный

Notification является EventEmitter.

Так создается новый экземпляр BrowserWindow с собственными свойствами, установленными в options.

Статические методы

Класс Notification имеет следующие статические методы:

Notification.isSupported()

Возвращает Boolean - Поддерживаются ли уведомления рабочего стола в текущей системе

new Notification([options])

  • options Object (опционально)
    • title String (optional) - A title for the notification, which will be shown at the top of the notification window when it is shown.
    • subtitle String (опционально) macOS - Подзаголовок для уведомления, который будет отображаться под заголовком.
    • body String (optional) - The body text of the notification, which will be displayed below the title or subtitle.
    • silent Boolean (опционально) - Использовать ли звук уведомления ОС при отображении уведомления.
    • icon (String | NativeImage) (опционально) - Значок для отображения в уведомлении.
    • hasReply Boolean (опционально) macOS - Нужно ли добавлять встроенный ответ к уведомлению.
    • timeoutType String (optional) Linux Windows - The timeout duration of the notification. Can be 'default' or 'never'.
    • replyPlaceholder String (опционально) macOS - Заполнитель для записи в поле ввода встроенного ответа.
    • sound String (опционально) macOS - Имя звукового файла, воспроизводимого при отображении уведомления.
    • urgency String (optional) Linux - The urgency level of the notification. Can be 'normal', 'critical', or 'low'.
    • actions NotificationAction[] (опционально) macOS - Действия для добавления к уведомлению. Пожалуйста, прочитайте доступные действия и ограничения в документации NotificationAction.
    • closeButtonText String (optional) macOS - A custom title for the close button of an alert. An empty string will cause the default localized text to be used.
    • toastXml String (optional) Windows - A custom description of the Notification on Windows superseding all properties above. Provides full customization of design and behavior of the notification.

События экземпляра

Объекты созданные с помощью new Notification имеют следующие события:

Примечание: Некоторые методы доступны только в определенных операционных системах и помечены как таковые.

Событие: 'show'

Возвращает:

  • Событие типа event

Возникает, когда уведомление отображается пользователю, обратите внимание, что оно может быть вызвано несколько раз, поскольку уведомление может быть показано несколько раз с помощью метода show().

Событие: 'click'

Возвращает:

  • Событие типа event

Возникает при нажатии на уведомление пользователя.

Событие: 'close'

Возвращает:

  • Событие типа event

Возникает при закрытии уведомления вручную пользователем.

Не гарантируется, что это событие будет отправлено во всех случаях, когда уведомление закрыто.

Событие: 'reply' macOS

Возвращает:

  • Событие типа event
  • reply String - Строка, введенная пользователем в поле ответа в строке ответа.

Возникает при нажатии пользователем кнопки "Ответить" в уведомлении с hasReply: true.

Событие: 'action' macOS

Возвращает:

  • Событие типа event
  • index Number - Индекс действия, которое было активировано.

Event: 'failed' Windows

Возвращает:

  • Событие типа event
  • error String - The error encountered during execution of the show() method.

Emitted when an error is encountered while creating and showing the native notification.

Методы экземпляра

Объекты, созданные с помощью New Notification, имеют следующие методы экземпляра:

notification.show()

Сразу же показывает уведомление пользователю, обратите внимание, что это означает, в отличие от реализации HTML5 Notification, создание экземпляра new Notification не сразу показывает его пользователю, вам нужно вызвать этот метод, прежде чем ОС покажет его.

Если уведомление было показано ранее, этот метод отклонит ранее показанное уведомление и создаст новое с идентичными свойствами.

notification.close()

Отклоняет уведомление.

Свойства экземпляра

notification.title

Свойство String, представляющее заголовок уведомления.

notification.subtitle

Свойство String, представляющее подзаголовок уведомления.

notification.body

Свойство String, представляющее тело уведомления.

notification.replyPlaceholder

Свойство String, представляющее заполнитель ответа уведомления.

notification.sound

Свойство String, представляющее звук уведомления.

notification.closeButtonText

Свойство String, представляющее текст кнопки закрытия уведомления.

notification.silent

Свойство Boolean, представляющее, является ли уведомление беззвучным.

notification.hasReply

Свойство Boolean, представляющее, есть ли в уведомлении действие для ответа.

notification.urgency Linux

A String property representing the urgency level of the notification. Can be 'normal', 'critical', or 'low'.

Стандартное значение - 'low'. Что бы узнать подробнее, смотрите NotifyUrgency.

notification.timeoutType Linux Windows

A String property representing the type of timeout duration for the notification. Can be 'default' or 'never'.

If timeoutType is set to 'never', the notification never expires. It stays open until closed by the calling API or the user.

notification.actions

A NotificationAction[] свойство, представляющее действия уведомления.

notification.toastXml Windows

A String property representing the custom Toast XML of the notification.

Воспроизведение звуков

В macOS вы можете указать название звука, который вы хотели бы воспроизвести, когда отображается уведомление. Any of the default sounds (under System Preferences > Sound) can be used, in addition to custom sound files. Убедитесь, что звуковой файл скопирован в папку пакета приложений (например, YourApp.app/Contents/Resources), или в одно из следующих мест:

  • ~/Library/Sounds (~/Библиотека/Звуки)
  • /Library/Sounds (/Библиотека/Звуки)
  • /Network/Library/Sounds (/Сеть/Библиотека/Звуки)
  • /System/Library/Sounds (/Система/Библиотека/Звуки)

Смотрите документацию NSSound для получения дополнительной информации.