跳到主要内容

通知

每个操作系统都有自己的机制来向用户显示通知。Electron的通知API是跨平台的,但每个进程类型都不同。

如果要在主进程或vice-versa中使用渲染器进程API,请考虑使用进程间通信.

用法

下面是两个示例,展示了如何显示每个流程类型的通知。

在主进程中显示通知

使用Electron的通知模块.使用此模块创建的通知对象不会显示,除非显示()实例方法。

主要工艺流程
常量 { 通知 } = 要求(“电子”)

常量 通知_标题 = '基本通知'
常量 通知_正文 = '来自主进程的通知'

新的 通知({
标题: 通知_标题
身体: 通知_正文
}).显示()

这里有一个完整的例子,你可以用Electron Fiddle打开:

常量 {应用程序 浏览器窗口 通知 } = 要求('电子/主')

功能 创建窗口 () {
常量= 新的 浏览器窗口({
宽度: 800
高度: 600
})

.加载文件('索引.html')
}

常量 通知_标题 = '基本通知'
常量 通知_正文 = '来自主进程的通知'

功能 showNotification(显示通知) () {
新的 通知({ 标题: 通知_标题 身体: 通知_正文 }).显示()
}

应用程序.当准备就绪时().然后(创建窗口).然后(showNotification(显示通知))

应用程序.('窗口全部关闭' () => {
如果 (过程.平台 !== “达尔文”) {
应用程序.退出()
}
})

应用程序.(“激活” () => {
如果 (浏览器窗口.获取所有Windows().长度 === 0) {
创建窗口()
}
})

在渲染器进程中显示通知

可以使用web通知API.

渲染器进程
常量 通知_标题 = '标题'
常量 通知_正文 =
'来自渲染器进程的通知。单击以登录到控制台。'
常量 单击消息 = '已单击通知'

新的 通知(通知_标题 { 身体: 通知_正文 }).onclick(单击) =
() => 慰问.日志(单击消息)

这里有一个完整的例子,你可以用Electron Fiddle打开:

常量 通知_标题 = '标题'
常量 通知_正文 = '来自渲染器进程的通知。单击以登录到控制台。'
常量 单击消息 = '已单击通知!'

新的 窗口.通知(通知_标题 { 身体: 通知_正文 })
.onclick(单击) = () => { 文件.按Id获取元素('输出').内部文本 = 单击消息 }

平台注意事项

虽然跨操作系统的代码和用户体验相似,但是细微的差异。

窗户

对于Windows上的通知,您的Electron应用程序需要有一个带有应用程序用户模型ID和相应的ToastActivatorCLSID(Toast激活器CLSID).

Electron尝试自动化围绕AppUserModelID和ToastActivatorCLSID的工作。什么时候?电子与松鼠一起使用。Windows(例如,如果您使用的是电子winstaller),快捷方式将自动正确设置.

在生产过程中,Electron还将检测到松鼠被使用,并自动呼叫app.setAppUserModelId()使用正确的值。在开发过程中,您可能会打电话给app.setAppUserModelId()你自己。

开发中的通知

要在开发期间快速引导通知,请添加node_modules\electron\dist\electron.exe在“开始”菜单中技巧。在资源管理器中导航到该文件,右键单击并“固定到开始菜单”。然后,打电话app.setAppUserModelId(process.execPath)在主进程中查看通知。

使用高级通知

Windows还允许使用自定义模板、图像和其他灵活的高级通知元素。

要从主进程发送这些通知,可以使用userland模块电子窗口通知它使用本机节点插件发送ToastNotification(演讲通知)平铺通知物体。

虽然包含按钮的通知与电子窗口通知处理答复需要使用电子视窗交互通知这有助于注册所需的COM组件并调用带有输入的用户数据的Electron应用程序。

查询通知状态

要检测是否允许您发送通知,请使用userland模块窗口-通知-状态.

此模块允许您提前确定Windows是否会自动抛出通知离开。

macOS操作系统

在macOS上通知很简单,但您应该知道苹果关于通知的人机界面指南.

请注意,通知的大小限制为256字节,并将被截断如果你超过了这个限制。

查询通知状态

要检测是否允许您发送通知,请使用userland模块macos通知状态.

此模块允许您提前检测是否显示通知。

Linux操作系统

发送通知时使用libnotify公司,可以在任何遵循的桌面环境桌面提醒规范包括肉桂、启蒙、团结、,GNOME和KDE。