第1章 初识Electron 1
1.1 Web应用与桌面客户端 1
1.2 初识Electron 4
1.3 Electron与NW.js 7
1.4 跨平台新星Flutter 11
1.5 总结 13
第2章 尝试构建个Electron程序 15
2.1 Node.js环境搭建 15
2.1.1 下载Node.js 15
2.1.2 安装Node.js 15
2.1.3 配置环境变量 18
2.2 Electron环境搭建 19
2.3 实现一个系统信息展示应用 20
2.3.1 初始化项目 20
2.3.2 程序目录结构 22
2.3.3 应用主进程 23
2.3.4 窗口页面 27
2.4 总结 33
第3章 进程 35
3.1 主进程与渲染进程 35
3.1.1 进程与线程 36
3.1.2 主进程 39
3.1.3 渲染进程 42
3.2 进程间通信 49
3.2.1 主进程与渲染进程通信 51
3.2.2 渲染进程互相通信 59
3.3 总结 65
第4章 窗口 67
4.1 窗口的基础知识 67
4.1.1 窗口的结构 67
4.1.2 重要的窗口配置 68
4.2 组合窗口 73
4.3 特殊形态的窗口 75
4.3.1 无标题栏、菜单栏及边框 76
4.3.2 圆角与阴影 76
4.4 窗口的层级 80
4.4.1 Windows窗口层级规则 80
4.4.2 置顶窗口 81
4.5 多窗口管理 82
4.5.1 使用Map管理窗口 82
4.5.2 关闭所有窗口 87
4.5.3 窗口分组管理 88
4.6 可伸缩窗口 91
4.6.1 单窗口方案 91
4.6.2 多窗口方案 96
4.7 总结 101
第5章 应用启动 103
5.1 启动参数 103
5.1.1 命令行参数 103
5.1.2 根据命令行参数变更应用配置 104
5.1.3 给可执行文件加上启动参数 109
5.2 Chromium配置开关 109
5.2.1 在命令行后追加参数 110
5.2.2 使用commandLine 111
5.3 通过协议启动应用 112
5.3.1 应用场景 112
5.3.2 实现自定义协议 113
5.3.3 通过自定义协议启动时的事件 115
5.3.4 应用首次启动前注册自定义协议 117
5.4 开机启动 118
5.5 启动速度优化 120
5.5.1 优化的重要性 120
5.5.2 使用V8 snapshots优化启动速度 121
5.6 总结 131
第6章 本地能力 132
6.1 注册表 132
6.1.1 reg命令 133
6.1.2 查询注册表项 135
6.1.3 添加或修改注册表项 139
6.1.4 删除注册表 142
6.2 调用本地代码 143
6.2.1 node-ffi 144
6.2.2 N-API 149
6.3 本地存储 154
6.3.1 操作文件存储数据 155
6.3.2 使用indexedDB 172
6.4 总结 181
第7章 硬件设备与系统UI 183
7.1 键盘快捷键 183
7.2 屏幕 189
7.2.1 屏幕截图 190
7.2.2 屏幕录制 201
7.3 录制声音 211
7.4 使用打印机 220
7.5 系统托盘与通知 228
7.6 总结 231
第8章 应用质量 232
8.1 单元测试 232
8.2 集成测试 239
8.3 异常处理 244
8.3.1 全局异常处理 244
8.3.2 日志文件 247
8.3.3 上报异常信息文件 252
8.3.4 Sentry 256
8.4 崩溃收集与分析 260
8.4.1 生成与分析Dump文件 260
8.4.2 在服务器端管理Dump文件 263
8.5 总结 268
第9章 打包与发布 269
9.1 应用打包 269
9.1.1 asar 269
9.1.2 生成可执行程序 271
9.1.3 安装包 273
9.2 应用签名 278
9.3 应用升级 279
9.3.1 自动升级 279
9.3.2 差分升级 282
9.4 发布应用到商店 287
9.5 总结 291
第10章 Sugar-Electron 293
10.1 应用环境的切换 294
10.1.1 集中管理多环境配置 294
10.1.2 基础配置与扩展 295
10.1.3 设置应用环境 296
10.2 进程间通信 299
10.2.1 请求响应模式 299
10.2.2 发布订阅模式 302
10.2.3 向主进程发送消息 304
10.3 窗口管理 305
10.4 数据共享 307
10.5 插件扩展 309
10.5.1 实现自定义插件 310
10.5.2 安装插件到框架 311
10.5.3 在代码中使用插件 312
10.6 服务进程 312
10.7 总结 314