Web开发经典丛书ELECTRON跨平台开发实战
- ISBN:9787302534891
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:392
- 出版时间:2019-09-01
- 条形码:9787302534891 ; 978-7-302-53489-1
本书特色
为macOS、Windows和Linux平台创建应用 使用原生操作系统API 使用诸如React等第三方框架 将应用部署到Mac App Store 读者需要具备一定的JavaScript和Node技能,但无须具有任何桌面应用开发经验。
内容简介
为macOS、Windows和Linux平台创建应用 ? 使用原生操作系统API ? 使用诸如React等第三方框架 ? 将应用部署到Mac App Store 读者需要具备一定的JavaScript和Node技能,但无须具有任何桌面应用开发经验。
目录
第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
相关资料
“以实战风格讲述跨平台桌面应用开发的权威指南。”
—Ashwin K. Raj, Innocepts
“不仅告诉你Electron为何物,而且还教你编写复杂的Electron应用程序。”
—Alexey Galiullin, Voiceworks
“让我能够快速创建自用的日常工具。”
—Phillippe Charriere,GtLab
“快速阅读,轻松理解。”
—Jay Kelkar, Kelkar Systems
“终于,JavaScript无所不在!”
—William F. Wheeler, consultant
作者简介
Steve Kinney是SendGrid的首席工程师,也是一名国际演讲者和DinosaurJS会议(在位于科罗拉多州丹佛市举办的JavaScript技术会议)的组织者。此前,他是软件与设计图灵学院前端工程项目的创始主任,并曾经在纽约市从事过七年教学工作。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
基于3D打印技术的产品创新设计方法
¥45.8¥88.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0