Skip to main content

Notificação

Criar notificações para o desktop do sistema

Processo: Main

Using in the renderer process#

If you want to show Notifications from a renderer process you should use the HTML5 Notification API

Class: Notification#

Criar notificações para o desktop do sistema

Processo: Main

Notification é um EventEmitter.

O mesmo cria um novo Notification com propriedades nativas informadas como a opção options.

Métodos estáticos#

A classe Notification tem os seguintes métodos estáticos:

Notification.isSupported()#

Retorna Boolean - se as notificações do desktop são suportadas ou não pelo atual sistema

new Notification([options])#

  • Objeto options (opcional)
    • 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 (optional) macOS - A subtitle for the notification, which will be displayed below the title.
    • body String (optional) - The body text of the notification, which will be displayed below the title or subtitle.
    • silent Boolean (optional) - Whether or not to emit an OS notification noise when showing the notification.
    • icon (String | NativeImage) (optional) - An icon to use in the notification.
    • hasReply Boolean (optional) macOS - Whether or not to add an inline reply option to the notification.
    • timeoutType String (optional) Linux Windows - The timeout duration of the notification. Can be 'default' or 'never'.
    • replyPlaceholder String (optional) macOS - The placeholder to write in the inline reply input field.
    • sound String (optional) macOS - The name of the sound file to play when the notification is shown.
    • urgency String (optional) Linux - The urgency level of the notification. Can be 'normal', 'critical', or 'low'.
    • actions NotificationAction[] (optional) macOS - Actions to add to the notification. Please read the available actions and limitations in the NotificationAction documentation.
    • 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.

Eventos de instância#

Objects created with new Notification emit the following events:

Note: Some events are only available on specific operating systems and are labeled as such.

Evento: 'show'#

Retorna:

  • event Event

Emitted when the notification is shown to the user, note this could be fired multiple times as a notification can be shown multiple times through the show() method.

Event: 'click'#

Retorna:

  • event Event

Emitted when the notification is clicked by the user.

Evento: 'close'#

Retorna:

  • event Event

Emitted when the notification is closed by manual intervention from the user.

This event is not guaranteed to be emitted in all cases where the notification is closed.

Event: 'reply' macOS#

Retorna:

  • event Event
  • reply String - The string the user entered into the inline reply field.

Emitted when the user clicks the "Reply" button on a notification with hasReply: true.

Event: 'action' macOS#

Retorna:

  • event Event
  • index Number - The index of the action that was activated.

Event: 'failed' Windows#

Retorna:

  • event 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.

Métodos de Instância#

Objectos criados com new Notification possuem os seguintes métodos de instâncias:

notification.show()#

Immediately shows the notification to the user, please note this means unlike the HTML5 Notification implementation, instantiating a new Notification does not immediately show it to the user, you need to call this method before the OS will display it.

If the notification has been shown before, this method will dismiss the previously shown notification and create a new one with identical properties.

notification.close()#

Dismisses the notification.

Propriedades da Instância#

notification.title#

A String property representing the title of the notification.

notification.subtitle#

A String property representing the subtitle of the notification.

notification.body#

A String property representing the body of the notification.

notification.replyPlaceholder#

A String property representing the reply placeholder of the notification.

notification.sound#

A String property representing the sound of the notification.

notification.closeButtonText#

A String property representing the close button text of the notification.

notification.silent#

A Boolean property representing whether the notification is silent.

notification.hasReply#

A Boolean property representing whether the notification has a reply action.

notification.urgency Linux#

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

Default is 'low' - see NotifyUrgency for more information.

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[] property representing the actions of the notification.

notification.toastXml Windows#

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

Playing Sounds#

On macOS, you can specify the name of the sound you'd like to play when the notification is shown. Any of the default sounds (under System Preferences > Sound) can be used, in addition to custom sound files. Be sure that the sound file is copied under the app bundle (e.g., YourApp.app/Contents/Resources), or one of the following locations:

  • ~/Library/Sounds
  • /Library/Sounds
  • /Network/Library/Sounds
  • /System/Library/Sounds

See the NSSound docs for more information.