《Electron实战:入门、进阶与性能优化》简介:

《Electron实战:入门进阶与性能优化》以实战为导向,讲解了如何用Electron结合现代前端技术来开发桌面应用。不仅全面介绍了Electron入门需要掌握的功能和原理,而且还针对Electron开发中的重点和难点进行了重点讲解,旨在帮助读者实现快速进阶。作者是Electron领域的早期实践者,项目经验非常丰富,《Electron实战:入门、进阶与性能优化》内容得到了来自阿里等大企业的一线专家的高度评价。

《Electron实战:入门、进阶与性能优化》遵循渐进式的原则逐步传递知识给读者,书中以Electron知识为主线并对现代前端知识进行了有序的整合,对易发问题从深层原理的角度进行讲解,对普适需求以实践的方式进行讲解,同时还介绍了Electron生态内的大量优秀组件和项目。

全书一共14章:

第1章讲解Electron因何而来,Electron的生态、优势和不足,以及Electron未来的竞争者PWA技术:

第2章带领读者新建了一个简单的Electron项目,同时为读者介绍了一些Electron的基础知识;

第3章讲解了主进程和渲染进程的相关内容;

第4章介绍了如何把现代前端框架引入Electron项目中,集中介绍了webpack、Angular、React和Vue等框架;

第5-13章依次详细讲解了界面、数据持久化、操作系统API访问、硬件设备访问、测试、调试、安全、发布等技术及其背后的原理:

第1 4章通过一个完整的工程项目串联了Electron的核心技术并展示了Electron项目开发的完整流程。

《Electron实战:入门、进阶与性能优化》目录:

●第1章 认识Electron 1
1.1 Electron的由来 1
1.2 基于Electron的应用 4
1.3 Electron的生态 5
1.4 Electron的优势 5
1.5 Electron的不足 6
1.6 未来的竞争者PWA 7
1.7 本章小结 9
●第2章 轻松入门 10
2.1 搭建开发环境 10
2.2 创建窗口界面 13
2.3 启动窗口 14
2.4 引用JavaScript 16
2.5 Electron API演示工具 19
2.6 试验工具Electron Fiddle 20
2.7 本章小结 22
●第3章 主进程和渲染进程 23
3.1 区分主进程与渲染进程 23
3.2 进程调试 25
3.2.1 调试主进程 25
3.2.2 调试渲染进程 27
3.3 进程互访 29
3.3.1 渲染进程访问主进程对象 29
3.3.2 渲染进程访问主进程类型 30
3.3.3 渲染进程访问主进程自定义内容 31
3.3.4 主进程访问渲染进程对象 32
3.4 进程间消息传递 32
3.4.1 渲染进程向主进程发送消息 32
3.4.2 主进程向渲染进程发送消息 34
3.4.3 渲染进程之间消息传递 36
3.5 remote模块的局限性 36
3.6 本章小结 38
●第4章 引入现代前端框架 39
4.1 引入webpack 39
4.1.1 认识webpack 39
4.1.2 配置webpack 40
4.1.3 主进程入口程序 42
4.1.4 渲染进程入口程序 43
4.1.5 自定义入口页面 45
4.1.6 使用jQuery 46
4.2 引入Angular 46
4.2.1 认识Angular 46
4.2.2 环境搭建 47
4.2.3 项目结构 48
4.3 引入React 48
4.3.1 认识React 48
4.3.2 环境搭建 49
4.3.3 项目结构 50
4.3.4 项目引荐 50
4.4 引入Vue 50
4.4.1 认识Vue 50
4.4.2 环境搭建 51
4.4.3 项目结构 52
4.4.4 调试配置 53
4.5 本章小结 55
●第5章 窗口 56
5.1 窗口的常用属性及应用场景 56
5.2 窗口标题栏和边框 58
5.2.1 自定义窗口的标题栏 58
5.2.2 窗口的控制按钮 62
5.2.3 窗口最大化状态控制 63
5.2.4 防抖与限流 65
5.2.5 记录与恢复窗口状态 67
5.2.6 适时地显示窗口 68
5.3 不规则窗口 69
5.3.1 创建不规则窗口 69
5.3.2 点击穿透透明区域 71
5.4 窗口控制 72
5.4.1 阻止窗口关闭 72
5.4.2 多窗口竞争资源 74
5.4.3 模态窗口与父子窗口 75
5.4.4 Mac系统下的关注点 76
5.5 本章小结 78
●第6章 界面 79
6.1 页面内容 79
6.1.1 获取webContents实例 79
6.1.2 页面加载事件及触发顺序 81
6.1.3 页面跳转事件 82
6.1.4 单页应用中的页内跳转 83
6.1.5 页面缩放 84
6.1.6 渲染海量数据元素 85
6.2 页面容器 88
6.2.1 webFrame 88
6.2.2 webview 90
6.2.3 BrowserView 91
6.3 脚本注入 93
6.3.1 通过preload参数注入脚本 93
6.3.2 通过executeJavaScript注入脚本 97
6.3.3 禁用窗口的beforeunload事件 99
6.4 页面动效 100
6.4.1 使用CSS控制动画 100
6.4.2 使用JavaScript控制动画 101
6.5 本章小结 102
●第7章 数据 103
7.1 使用本地文件持久化数据 103
7.1.1 用户数据目录 103
7.1.2 读写本地文件 105
7.1.3 值得推荐的第三方库 106
7.2 使用浏览器技术持久化数据 107
7.2.1 浏览器数据存储技术对比 107
7.2.2 使用第三方库访问IndexedDB 108
7.2.3 读写受限访问的Cookie 110
7.2.4 清空浏览器缓存 112
7.3 使用SQLite持久化数据 112
7.4 本章小结 115
●第8章 系统 116
8.1 系统对话框 116
8.1.1 使用系统文件对话框 116
8.1.2 关于对话框 118
8.2 菜单 119
8.2.1 窗口菜单 119
8.2.2 HTML右键菜单 121
8.2.3 系统右键菜单 124
8.2.4 自定义系统右键菜单 125
8.3 快捷键 126
8.3.1 监听网页按键事件 126
8.3.2 监听全局按键事件 126
8.4 托盘图标 127
8.4.1 托盘图标闪烁 127
8.4.2 托盘图标菜单 128
8.5 剪切板 129
8.5.1 把图片写入剪切板 129
8.5.2 读取并显示剪切板里的图片 130
8.6 系统通知 131
8.6.1 使用HTML API发送系统通知 131
8.6.2 主进程内发送系统通知 132
8.7 其他 133
8.7.1 使用系统默认应用打开文件 133
8.7.2 接收拖拽到窗口中的文件 134
8.7.3 使用系统字体 135
8.7.4 最近打开的文件 137
8.8 本章小结 138
●第9章 通信 139
9.1 与Web服务器通信 139
9.1.1 禁用同源策略以实现跨域 139
9.1.2 Node.js访问HTTP服务的不足 141
9.1.3 使用WebSocket通信 142
9.1.4 截获并修改网络请求 144
9.2 与系统内其他应用通信 146
9.2.1 Electron应用与其他应用通信 146
9.2.2 网页与Electron应用通信 148
9.3 自定义协议(protocol) 150
9.4 使用socks5代理 152
9.5 本章小结 153
●第10章 硬件 154
10.1 屏幕 154
10.1.1 获取扩展屏幕 154
10.1.2 在自助服务机中使用Electron 156
10.2 音视频设备 158
10.2.1 使用摄像头和麦克风 158
10.2.2 录屏 159
10.3 电源 160
10.3.1 电源的基本状态和事件 160
10.3.2 监控系统挂起与锁屏事件 161
10.3.3 阻止系统锁屏 162
10.4 打印机 162
10.4.1 控制打印行为 162
10.4.2 导出PDF 164
10.5 硬件信息 165
10.5.1 获取目标平台硬件信息 165
10.5.2 使用硬件串号控制应用分发 166
10.6 本章小结 170
●第11章 调测 171
11.1 测试 171
11.2 调试 177
11.3 日志 188
11.4 本章小结 193
●第12章 安全 194
12.1 保护源码 195
12.2 保护客户 204
12.3 保护网络 206
12.4 保护数据 211
12.5 提升稳定性 214
12.6 本章小结 216
●第13章 发布 218
13.1 生成图标 218
13.2 生成安装包 219
13.3 代码签名 221
13.4 自动升级 222
13.5 本章小结 224
●第14章 实战:自媒体内容发布工具 225
14.1 项目需求 225
14.2 项目架构 226
14.3 核心剖析 229
14.4 辅助功能 237
14.5 本章小结 240
附录A Mac代码签名 242
· · · · · ·