跳到主内容

通知

创建OS(操作系统)桌面通知

进程:主进程

在渲染进程中使用#

如果要显示来自渲染进程的通知, 你应该使用 HTML5 Notification API

类: Notification#

创建OS(操作系统)桌面通知

进程:主进程

Notification是一个EventEmitter.

通过 options 来设置的一个新的原生 Notification

静态方法#

Notification 类有以下静态方法:

Notification.isSupported()#

Returns Boolean-当前系统是否支持桌面通知

new Notification([options])#

  • options Object (可选)
    • title String (可选) - 通知的标题,将在通知窗口的顶部显示。
    • subtitleString (可选) 通知的副标题, 显示在标题下面。 macOS
    • body String (可选) - 通知的正文文本,将显示在标题或副标题下面。
    • silentBoolean (可选) 在显示通知时是否发出系统提示音。
    • icon(String | NativeImage ) (可选) 用于在该通知上显示的图标。
    • hasReplyBoolean (可选) 是否在通知中添加一个答复选项。 macOS
    • timeoutType String (可选) Linux Windows - 通知的超时持续时间 可以是 'default' 或 'never'.
    • replyPlaceholderString (可选) 答复输入框中的占位符。 macOS
    • sound String (可选) 显示通知时播放的声音文件的名称。 macOS
    • urgency String (可选) Linux - 通知的紧急级别。 可以是 'normal', 'critical', 或者 'low'
    • actions NotificationAction[] (可选) macOS - 要添加到通知中的操作 请阅读 NotificationAction文档来了解可用的操作和限制。
    • closeButtonText String (可选) macOS - 自定义关闭按钮提示内容。 空字符串将替换为默认的本地化文本。
    • toastXml String (可选) Windows - 自定义的窗口通知描述可取代上面所有属性。 提供完全自定义的设计和通知行为。

实例事件#

new Notification 创建的对象触发以下事件:

注意: 某些事件仅在特定的操作系统上可用, 这些方法会被标记出来。

事件: 'show'#

返回:

  • event Event

当通知向用户显示时触发, 请注意, 这可能会多次触发, 因为「通知」可以通过 show() 方法多次显示。

事件: 'click'#

返回:

  • event Event

在用户单击通知时触发。

事件: 'close'#

返回:

  • event Event

当用户手动关闭通知时触发

当通知关闭后,这个事件不能保证在所有情况下都会触发。

事件: 'reply' macOS#

返回:

  • event Event
  • replyString-用户在内联答复字段中输入的字符串.

当用户单击 hasReply: true 的通知上的 "Reply" 按钮时触发。

事件: 'action' macOS#

返回:

  • event Event
  • index Number - 已激活的操作的索引.

Event: 'failed' Windows#

返回:

  • event Event
  • error String - 执行 show() 方法时遇到的错误

在创建和显示本地通知时发生错误时触发异常。

实例方法#

new Notification 创建的对象有以下实例方法:

notification.show()#

即时向用户展示 notification ,请注意这意味着与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#

String 属性,用于确定通知的紧急级别 可以是 'normal', 'critical', 或者 'low'

默认为 'low' - 详见 NotifyUrgency

notification.timeoutType Linux Windows#

String 属性代表通知的超时持续时间。 可以是 'default' 或 'never'.

如果 timeoutType 设置为 'never',则通知永远不会过期。 它将一直开放直到调用API或用户关闭为止。

notification.actions#

NotificationAction[] 属性代表通知的动作

notification.toastXml Windows#

String 通过windows的 toastXML 自定义通知

播放声音#

在 macOS 上, 您可以指定在显示通知时要播放的声音的名称。 除了自定义声音文件之外, 还可以使用任何默认声音 (系统首选项 > 声音)。 请确保声音文件是在应用程序包(例如, YourApp.app/Contents/Resources) 内存在副本, 或者是下列位置之一:

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

有关详细信息, 请参见 NSSound 文档。