| 作者 |
| 史蒂文·金尼(Steve Kinney) |
| 丛书名 |
| Web开发经典丛书 |
| 出版社 |
| 清华大学出版社 |
| ISBN |
| 9787302534891 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 为macOS、Windows和Linux平台创建应用 使用原生操作系统API 使用诸如React等第三方框架 将应用部署到Mac App Store 读者需要具备一定的JavaScript和Node技能,但无须具有任何桌面应用开发经验。 |
| 目录 |
| 录 第Ⅰ部分 Electron入门知识 第1 章 介绍Electron 3 1.1 什么是Electron 3 1.1.1 什么是Chromium Content Module 5 1.1.2 什么是Node.js 6 1.2 哪些人在使用Electron 6 1.3 阅读本书之前,需要知道些什么 8 1.4 为何要使用Electron 8 1.4.1 重用现有技能 10 1.4.2 访问原生操作系统API 10 1.4.3 更高运行权限,更少功能限制 11 1.4.4 在浏览器环境中使用Node的功能 13 1.4.5 离线优先 14 1.5 Electron的工作原理 14 1.5.1 主进程 15 1.5.2 渲染器进程 15 1.6 对比Electron与NW.js 16 1.7 本章小结 17 第2 章 创建第一个Electron应用 19 2.1 创建一个书签列表应用 20 2.1.1 组织Electron应用的结构 21 2.1.2 package.json 22 2.1.3 在项目中下载并安装Electron 23 2.2 使用主进程 25 2.3 创建一个渲染器进程 26 2.3.1 从渲染器进程加载代码 30 2.3.2 在渲染器进程中引入文件 31 2.3.3 在渲染器进程中添加样式 32 2.4 实现UI界面 33 2.4.1 在Electron中发出跨域请求 35 2.4.2 解析响应文本 36 2.4.3 使用Web Storage API存储从响应中得到的信息 38 2.4.4 显示请求的结果 39 2.4.5 预防错误 43 2.4.6 一个不期而至的bug 45 2.5 本章小结 49 第Ⅱ部分 使用Electron创建跨平台应用 第3 章 创建一个笔记应用 53 3.1 定义应用的目标 54 3.2 打下基础 55 3.3 初始化并启动应用 56 3.3.1 实现UI界面 57 3.3.2 优雅地显示浏览器窗口 63 3.4 实现基本功能 64 3.5 调试Electron应用 67 3.5.1 调试渲染器进程 67 3.5.2 调试主进程 68 3.5.3 使用Visual Studio Code调试主进程 69 3.6 本章小结 72 第4 章 使用原生文件对话框与实现跨进程通信 73 4.1 触发原生文件对话框 74 4.2 使用Node读文件内容 77 4.2.1 限定允许打开的文件类型 78 4.2.2 在macOS系统中实现工作表对话框 81 4.3 实现跨进程通信 82 4.4 使用跨进程通信调用文件打开功能 87 4.4.1 理解CommonJS模块系统 88 4.4.2 引入其他进程的功能 88 4.5 从主进程向渲染器进程发送内容 90 4.6 本章小结 95 第5 章 创建多窗口应用 97 5.1 创建和管理多个窗口 98 5.1.1 主进程与多个窗口之间的通信 99 5.1.2 将指向当前窗口的引用传给主进程 101 5.2 改进新建窗口的用户体验 103 5.3 与macOS集成 105 5.4 本章小结 108 第6 章 操作文件 111 6.1 跟踪当前打开的文件 113 6.1.1 使用当前文件的名称更新窗口标题 114 6.1.2 检测是否修改过当前文件 116 6.1.3 启用UI界面上的Save File和Revert按钮 118 6.1.4 更新macOS系统的展示文件 119 6.2 跟踪最近打开的文件 120 6.3 保存文件 122 6.3.1 导出渲染的HTML内容 123 6.3.2 常用路径 124 6.3.3 从渲染器进程保存文件 125 6.3.4 保存当前文件 125 6.3.5 回滚文件 127 6.4 通过拖曳打开文件 127 6.4.1 忽略无关区域的拖曳操作 127 6.4.2 提供可视化反馈 128 6.4.3 打开拖曳过来的文件 131 6.5 监控文件的变动 131 6.6 丢弃未保存的修改前提示用户 134 6.7 本章小结 138 第7 章 创建应用菜单和上下文菜单 141 7.1 替换并复制默认菜单 143 7.1.1 macOS系统的Edit菜单消失之谜 144 7.1.2 替换Electron默认菜单的隐形代价 146 7.1.3 实现Edit和Window菜单 147 7.1.4 定义菜单项的role属性和键盘快捷键 148 7.1.5 恢复macOS系统的应用菜单 149 7.1.6 添加Help菜单 153 7.2 在菜单中添加应用特有的功能 155 7.3 创建上下文菜单 160 7.4 本章小结 162 第8 章 与操作系统更深入地集成以及动态启用菜单项 163 8.1 在渲染器进程(UI界面)中使用shell模块 164 8.2 在应用菜单中使用shell模块 167 8.3 在上下文菜单中使用shell模块 169 8.3.1 决定将功能放在菜单中还是UI界面上 170 8.3.2 决定将功能放在应用菜单还是上下文菜单中 171 8.4 在适当的时候禁用菜单项 171 8.4.1 动态启用和禁用上下文菜单中的菜单项 172 8.4.2 动态启用和禁用应用菜单中的菜单项 175 8.5 本章小结 181 第9 章 介绍tray模块 183 9.1 开始创建Clipmaster 184 9.2 使用tray模块创建一个应用 185 9.2.1 为macOS和Windows选择不同的图标 187 9.2.2 支持macOS的深色模式 188 9.2.3 从剪贴板读取内容并保存剪贴项 189 9.3 读写剪贴板的内容 191 9.3.1 写入剪贴板 193 9.3.2 处理极端场景 195 9.4 注册全局快捷键 198 9.5 显示通知 201 9.6 在macOS系统中单击菜单栏图标时,切换显示的图标 204 9.7 完整的代码 205 9.8 本章小结 208 第10 章 在应用中使用menubar库 209 10.1 使用menubar开始创建应用 210 10.2 向UI界面添加剪贴项 214 10.3 在应用中操作剪贴项 216 10.3.1 使用事件代理避免内存泄漏 216 10.3.2 删除一个剪贴项 217 10.3.3 将数据写入剪贴板 219 10.4 发布剪贴项 220 10.5 显示通知和注册全局快捷键 223 10.5.1 注册全局快捷键 224 10.5.2 处理从未打开过窗口的极端场景 226 10.6 添加第二个菜单 227 10.7 本章小结 229 第11 章 使用转译器和框架 231 11.1 介绍electron-compile 233 11.2 打造应用的基础 234 11.3 在React中创建UI界面 241 11.3.1 Application组件 241 11.3.2 显示物品列表 244 11.4 添加新的物品 248 11.5 实时重新加载与模块热加载 252 11.5.1 启用实时重新加载 252 11.5.2 实现模块热加载 253 11.6 本章小结 256 第12 章 保存用户数据以及使用Node.js原生模块 259 12.1 在SQLite数据库中存储数据 260 12.1.1 使用electron-rebuild确保编译出正确的版本 261 12.1.2 使用SQLite和Knex.js 262 12.1.3 将数据库功能挂载到React应用 263 12.1.4 从数据库获取所有数据项 265 12.1.5 向数据库中添加数据项 266 12.1.6 更新数据库中的数据项 268 12.1.7 删除数据项 270 12.1.8 将数据库存储在正确的地方 275 12.2 IndexedDB 276 12.2.1 在IndexedDB中创建仓库 277 12.2.2 从IndexedDB获取数据 278 12.2.3 向IndexedDB写入数据 279 12.2.4 将数据库操作连接到UI界面 282 12.3 本章小结 284 第13 章 使用Spectron测试应用 285 13.1 介绍Spectron 287 13.2 使用Spectron和WebdriverIO 289 13.3 设置Spectron和测试运行器 290 13.4 使用Spectron编写异步测试 292 13.4.1 等待窗口加载 293 13.4.2 测试Electron Browser Window API 294 13.4.3 使用Spectron遍历和测试DOM 294 13.4.4 使用Spectron控制Electron API 297 13.5 本章小结 298 第Ⅲ部分 部署Electron应用 第14 章 构建并部署应用 301 14.1 介绍Electron Packager 302 14.1.1 设置Electron Packager 302 14.1.2 配置输出 304 14.1.3 配置应用的名称和版本 304 14.1.4 更新应用图标 305 14.1.5 针对多个操作系统进行构建 306 14.2 使用asar档案文件 307 14.3 Electron Forge 310 14.3.1 将一个Electron应用导入Electron Forge 311 14.3.2 使用Electron Forge构建应用 312 14.4 本章小结 313 第15章 发布和更新应用 315 15.1 收集崩溃报告 315 15.1.1 设置崩溃报告 316 15.1.2 设置一台接收崩溃报告的服务器 319 15.1.3 报告未捕获异常 322 15.2 应用签名 324 15.2.1 签署macOS应用 325 15.2.2 在Windows系统中创建安装程序和进行代码签名 328 15.3 自动更新应用 331 15.3.1 在Electron中设置自动升级 332 15.3.2 搭建一台自动更新服务器 334 15.4 本章小结 337 第16 章 通过Mac App Store分发应用 339 16.1 将应用提交到Mac App Store 339 16.1.1 签署应用 340 16.1.2 向Mac App Store注册应用 345 16.1.3 将应用添加到iTunes Connect 346 16.1.4 为Mac App Store打包应用 348 16.1.5 配置应用类别 352 16.1.6 注册应用以打开一种文件类型 352 16.2 验证和上传应用 354 16.3 收尾事项 355 16.4 本章小结 355 附录 Fire Sale和Clipmaster 9000的源代码 357 |