通知 (Windows, Linux, macOS)
为了渲染程序,Electron方便地允许开发者使用 , 使用当前运行中的系统的原生通知 API 以显示它。
要在主进程中显示通知,您需要使用 通知 模块。
假定您有 的 Electron 应用程序, 添加以下行到 文件 </body>
标签:
并添加 渲染器.js
文件:
启动 Electron 应用程序后,您应该看到通知:
如果您打开控制台,然后单击通知。 您将看到触发 onclick
事件后生成的 消息:
从 的工作应用程序开始快速启动指南, 更新 文件中包含以下行:
启动 Electron 应用程序后,您应该看到通知:
虽然操作系统的代码和用户体验相似,但依然存在微妙的差异。
- 在 Windows 10 上,您的应用程序的快捷方式必须安装到 启动菜单中,包含一个 .aspx) 这可能会在开发过程中被过度杀死,因此将
node_modules\electron\dist\electron.exe
添加到您的开始菜单中也做到了 的技巧。 在Explorer, 右键单击和“Pin 开始菜单”中导航到文件。 然后您需要添加第个应用。setAppUserModelId(process.execPath)
到 您的主要进程才能看到通知。 - 在 Windows 8.1 和 Windows 8 上,带有 应用程序用户模型ID(Application User Model ID).aspx) 的应用程序快捷方式必须被添加到开始屏幕上。 但是请注意,它不需要被固定到开始屏幕。
Electron尝试将应用程序用户模型 ID 的相关工作自动化。 Electron在和安装和更新框架 Squirrel 协同使用的时候,。 更棒的是,Electron 会自动检测 Squirrel 的存在,并且使用正确的值来自动调用app.setAppUserModelId()
。 在开发的过程中, 你可能需要自己调用
此外,在Windows 8中,通知正文的最大长度为250个字符,Windows团队建议将通知保留为200个字符。 然而,Windows 10中已经删除了这个限制,但是Windows团队要求开发人员合理使用。 尝试将大量文本发送到API(数千个字符) 可能会导致不稳定。
高级通知
Windows 的更高版本允许高级通知,自定义模板,图像和其他灵活元素。 要发送这些通知(来自主进程或渲染器进程),请使用用户区模块 来用原生节点附件发送 ToastNotification
和 TileNotification
对象。
要检测是否允许您发送通知,请使用 用户土地模块 electron-notification-state
This allows you to determine ahead of time whether or not Windows will silently throw the notification away.
MacOS上的通知是最直接的,但你应该注意.
请注意,通知的大小限制为256个字节,如果超过该限制,则会被截断。
后来的 macOS 版本允许有一个输入字段的通知,允许用户快速回复通知。 为了通过输入字段发送通知,请使用用户区模块node-mac-notifier。
勿扰 / 会话状态
要检测是否允许发送通知,请使用用户区模块 。
这样可以提前检测是否显示通知。