非常教程

Electron参考手册

指南 | Guides

通知(Windows,Linux,macOS) | Notifications (Windows, Linux, macOS)

所有三个操作系统都提供了向应用程序发送通知的方法。Electron方便地允许开发人员使用HTML5 Notification API发送通知,使用当前运行的操作系统的本机通知API来显示它。

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

let myNotification = new Notification('Title', {
  body: 'Lorem Ipsum Dolor Sit Amet'
})

myNotification.onclick = () => {
  console.log('Notification clicked')
}

尽管跨操作系统的代码和用户体验相似,但存在细微的差异。

Windows

  • 在Windows 10上,通知“正常工作”。
  • 在Windows 8.1和Windows 8上,必须将具有应用程序用户模型ID的应用程序快捷方式安装到“开始”屏幕。但请注意,它不需要固定到“开始”屏幕。
  • 在Windows 7上,通知通过自定义实现工作,该自定义实现与新系统上的本机类似。

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

高级通知

Windows的更新版本允许使用自定义模板,图像和其他灵活元素的高级通知。发送这些通知(通过主处理或渲染过程),可以使用用户级模块电子-窗口通知,它利用本机节点的插件来发送ToastNotificationTileNotification对象。

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

安静的小时/演示模式

要检测您是否被允许发送通知,请使用userland模块电子通知状态。

这使您可以提前确定Windows是否会悄悄丢弃通知。

MacOS

MacOS上的通知非常简单,但您应该了解Apple关于通知的人机界面准则。

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

高级通知

更高版本的macOS允许通知输入字段,允许用户快速回复通知。为了使用输入字段发送通知,请使用userland模块node-mac-notifier。

请勿打扰/会话状态

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

这将允许您提前检测是否显示通知。

Linux

使用libnotify通知可以在遵循桌面通知规范的任何桌面环境中显示通知,包括Cinnamon,Enlightenment,Unity,GNOME,KDE。

Electron

Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。

主页 https://electron.atom.io/
源码 https://github.com/electron/electron
发布版本 1.7.9

Electron目录

1.指南 | Guides
2.指南·开发 | Guides: Development
3.Webview 组件 |
4.加速器 | Accelerator
5.API
6.API·对象 | API·Objects
7.app
8.autoUpdater
9.浏览器总览 | BrowserView
10.浏览器窗口 | BrowserWindow
11.浏览器窗口代理 | BrowserWindowProxy)
12.ClientRequest
13.剪贴板 | clipboard
14.内容追踪 | contentTracing
15.小型文字档案 | Cookies
16.crashReporter
17.调试器 | Debugger
18.desktopCapturer
19.dialog
20.电子下载 | DownloadItem
21.环境变量 | Environment Variables
22.无框窗口 | Frameless Window
23.globalShortcut
24.IncomingMessage
25.ipcMain
26.IPC渲染器 | ipcRenderer
27.语言环境 | Locales
28.画面 | Menu
29.MenuItem
30.本地图像 | nativeImage
31.net
32.通知 | Notification
33.权限监控 | powerMonitor
34.权限存储拦截器 | powerSaveBlocker
35.处理 | process
36.协议 | protocol
37.远程 | remote
38.sandbox
39.屏幕 | screen
40.会话 | session
41.shell
42.系统表现 | systemPreferences
43.触摸板 | TouchBar
44.触摸板按钮 | TouchBarButton
45.触摸板颜色选择器 | TouchBarColorPicker
46.触摸板组 | TouchBarGroup
47.触摸板标签 | TouchBarLabel
48.触摸板弹出框 | TouchBarPopover
49.触摸板清理 | TouchBarScrubber
50.触摸板分段控制 | TouchBarSegmentedControl
51.触摸板滑块 | TouchBarSlider
52.触摸板间隔 | TouchBarSpacer
53.Tray
54.网页内容 | webContents
55.网页框架 | webFrame
56.网页要求 | WebRequest
57.窗口开启 | window.open