Electron中文文档

新手 685983304  中级 642625556 高级 602866851 Q群区别? 征集友情链接公告

推荐版:3.0.10   测试版:4.0.0-beta.8   极客版:4.0.0-nightly.20181010  

通知 (Windows, Linux, macOS)

所有三个操作系统都提供了应用程序向用户发送通知的手段。 Electron允许开发者使用 HTML5 Notification API 发送通知,并使用当前运行的操作系统的本地通知 API 来显示它。

注意: 由于这是一个 HTML5 API,它只能在渲染器进程中使用。 如果你想在主进程中显示通知,请查看 Notification 模块.

let myNotification = new Notification('标题', {
  body: '通知正文内容'
})

myNotification.onclick = () => {
  console.log('通知被点击')
}

虽然操作系统的代码和用户体验相似,但依然存在微妙的差异。

Windows

  • 在 Windows 10, 必须被添加您应用程序 应用程序用户模型ID 的快捷方式到开始菜单上。
  • 在 Windows 8.1 和 Windows 8 上,带有 应用程序用户模型ID(Application User Model ID) 的应用程序快捷方式必须被添加到开始屏幕上。 但是请注意,它不需要被固定到开始屏幕。
  • 在 Windows 7 上, 通知通过视觉上类似于较新系统原生的一个自定义的实现来工作。

Electron attempts to automate the work around the Application User Model ID. When Electron is used together with the installation and update framework Squirrel, shortcuts will automatically be set correctly. Furthermore, Electron will detect that Squirrel was used and will automatically call app.setAppUserModelId() with the correct value. During development, you may have to call [`app.setAppUserModelId()`][[set-app-user-model-id](../api/app.md#appsetappusermodelidid-windows)] yourself.

此外,在Windows 8中,通知正文的最大长度为250个字符,Windows团队建议将通知保留为200个字符。 然而,Windows 10中已经删除了这个限制,但是Windows团队要求开发人员合理使用。 尝试将大量文本发送到API(数千个字符) 可能会导致不稳定。

高级通知

Windows 的更高版本允许高级通知,自定义模板,图像和其他灵活元素。 要发送这些通知(来自主进程或渲染器进程),请使用用户区模块 electron-windows-notifications 来用原生节点附件发送 ToastNotificationTileNotification 对象。

虽然包含按钮的通知可以使用 electron-windows-notifications,但处理回复则需要使用electron-windows-interactive-notifications,这有助于注册所需的COM组件,并使用输入的用户数据调用Electron应用程序。

免打扰模式 / 演示模式

要检测是否允许发送通知,请使用用户区模块 electron-notification-state

这样,您可以提前确定 Windows 是否会将通知忽略。

macOS

MacOS上的通知是最直接的,但你应该注意苹果关于通知的人机接口指南(Apple's Human Interface guidelines regarding notifications).

请注意,通知的大小限制为256个字节,如果超过该限制,则会被截断。

高级通知

后来的 macOS 版本允许有一个输入字段的通知,允许用户快速回复通知。 为了通过输入字段发送通知,请使用用户区模块node-mac-notifier

勿扰 / 会话状态

要检测是否允许发送通知,请使用用户区模块 electron-notification-state

这样可以提前检测是否显示通知。

Linux

通知是通过libnotify发送的,libnotify可以在任何实现了桌面通知规范(Desktop Notifications Specification)的桌面环境中发送通知,包括Cinnamon、Enlightenment、Unity、GNOME、KDE



相关npm包集合




相关站点资源





官方指南

常见问题 (FAQ)

指南和教程

详细教程

API 参考

自定义 DOM 元素:

主进程可用的模块:

渲染进程(网页)可用的模块:

两种进程都可用的模块:

开发

  • electron 3.x 系统新增加的页面加载函数 loadFile
  • electron 如何禁用页面缩放事件?
  • JS开发者社区

    和大家在一起

    新手/1元新手 685983304 
    中级/5元 中级 642625556
    高级/50元 高级 602866851