メインコンテンツへ飛ぶ

Notification

デスクトップ通知を作成します。

Process: Main

レンダラープロセスの通知

If you want to show notifications from a renderer process you should use the web Notifications API

クラス: Notification

デスクトップ通知を作成します。

Process: Main

NotificationEventEmitter を継承しています。

options によって設定されたネイティブプロパティで新しい Notification を生成します。

静的メソッド

Notification クラスには、次の静的メソッドがあります。

Notification.isSupported()

戻り値 boolean - 現在のシステムでデスクトップ通知がサポートされているかどうか。

new Notification([options])

  • options Object (任意)
    • title string (任意) - 通知ウィンドウの上部に表示される通知のタイトルです。
    • subtitle string (任意) macOS - タイトルの下に表示される、通知のサブタイトル。
    • body string (任意) - タイトルやサブタイトルの下に表示さる、通知の本文。
    • silent boolean (任意) - 通知を表示するときに OS が通知音を鳴らさないかどうか。
    • icon (string | NativeImage) (optional) - An icon to use in the notification. 文字列を渡す場合、ローカルのアイコンファイルへの有効なパスでなければなりません。
    • hasReply boolean (任意) macOS - 通知に埋め込み返信オプションを追加するかどうか。
    • timeoutType string (任意) Linux Windows - 通知の消失までの時間。 'default' か 'never' にできます。
    • replyPlaceholder string (任意) macOS - 埋め込み返信入力フィールド内に書かれるプレースホルダ。
    • sound string (任意) macOS - 通知が表示されるときに再生される音声ファイルの名前。
    • urgency string (任意) Linux - 通知の緊急度レベル。 'normal'、'critical'、'low' のいずれかにできます。
    • actions NotificationAction[] (optional) macOS - Actions to add to the notification. NotificationAction ドキュメント内の有効なアクションと制限を読んで下さい。
    • closeButtonText string (任意) macOS - 通知を閉じるボタンのカスタムタイトル。 空の文字列の場合は、既定のローカライズされたテキストが使用されます。
    • toastXml string (任意) Windows - Windows 通知のカスタム記述は、上記のプロパティすべてを上書きします。 これは通知のデザインと動作の完全なカスタマイズを提供します。

インスタンスイベント

new Notification で作成されたオブジェクトでは以下のイベントが発生します。

info

いくつかのイベントは特定のオペレーティングシステムでのみ利用可能で、そのように注記がつけられています。

イベント: 'show'

戻り値:

  • event Event

ユーザに通知が表示されると発行されます。 注意として、通知は show() メソッドを介すると複数回表示できるので、このイベントは複数回起こることがあります。

イベント: 'click'

戻り値:

  • event Event

ユーザによって通知がクリックされたときに発行されます。

イベント: 'close'

戻り値:

  • event Event

ユーザの手によって手動で通知が閉じられたときに発行されます。

このイベントは、通知が閉じられたすべての状況で発行されることは保証されていません。

Windows 上では、この close イベントは次の 3 つの方法のうちのいずれかで発生する可能性があります。notification.close() によるプログラムでの解除、ユーザーが通知を閉じることによる解除、またはシステムタイムアウトによる解除です。 最初の close イベントが発行された後に通知がアクションセンターにある場合、notification.close() を呼び出すとアクションセンターから通知が削除されますが、これによって close イベントが再び発生することはありません。

イベント: 'reply' macOS

戻り値:

  • event Event
  • reply string - ユーザが埋め込み返信フィールドに入力した文字列.

hasReply: true の通知上で、ユーザが "返信" ボタンをクリックしたときに発行されます。

イベント: 'action' macOS

戻り値:

  • event Event
  • index number - アクティベートされたアクションのインデックス.

イベント: 'failed' Windows

戻り値:

  • event Event
  • error string - show() メソッドの実行中に発生したエラー。

ネイティブ通知の作成および表示でエラーに遭遇した場合に発生します。

インスタンスメソッド

new Notification() コンストラクタで作成されたオブジェクトは、次のインスタンスメソッドを持っています。

notification.show()

即座にユーザーに通知を表示します。 ウェブの Notification API とは異なり、new Notification() とインスタンス化するだけではユーザに即座に表示されません。 そこで代わりに、OS が表示する前にこのメソッドを呼び出す必要があります。

以前にその通知が表示されている場合、このメソッドはその通知を閉じ、同じプロパティを持つ新しい通知を作成します。

notification.close()

通知を閉じます。

Windows では、通知が画面に表示されている間に notification.close() を呼び出すと、通知が解除され、アクションセンターから削除されます。 もし通知が画面上に通知が表示されなくなってから notification.close() を呼び出した場合、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

通知の緊急度を表す string プロパティ。 'normal'、'critical'、'low' のいずれかにできます。

省略値は 'low' - この詳細は NotifyUrgency を参照してください。

notification.timeoutType Linux Windows

通知がタイムアウトする種別を表す string プロパティ。 'default' か 'never' にできます。

timeoutType が 'never' に設定されている場合、通知は自動的に閉じられません。 呼び出し元の API かユーザによって閉じられるまで開いたままになります。

notification.actions

A NotificationAction[] property representing the actions of the notification.

notification.toastXml Windows

string 型のプロパティで、通知のカスタム Toast XML を表します。

サウンドの再生

macOS では、通知が表示されたときに再生したいサウンドの名前を指定することができます。 カスタムサウンドファイルに加えて、(システム環境設定 > サウンド にある) デフォルトサウンドのいずれかを使用することができます。 サウンドファイルがアプリバンドル (YourApp.app/Contents/Resources など) または以下のいずれかの場所にコピーされることに留意してください。

  • ~/ライブラリ/Sounds
  • /ライブラリ/Sounds
  • /ネットワーク/ライブラリ/Sounds
  • /システム/ライブラリ/Sounds

より詳しくは、NSSound ドキュメントを参照して下さい。