Electron实战:入门、进阶与性能优化

相关资料

[

★早些年的时候,人们往往认为Web软件和桌面软件是两个截然不同的技术领域,应用于不同的场景。而现在,人们越来越多得去尝试将这两种技术结合,发挥它们的优势,快速构建性能好、交互友好的跨平台软件。本书作者多年研究如何将Web技术应用到桌面软件,有着多年的实战经验,在该领域内经验丰富。本书系统全面地介绍了开发Electron桌面应用所需要的知识点,由浅入深带你走进Electron的世界,其中有不少作者实战过程中总结出来的难点解决方案和*实践,让你轻松避开一些“坑”。无论你是想简单了解,还是想深入学习研究,或是在实际商业项目中用作参考,都强烈推荐!
——裘 逑 菜鸟国际技术部技术专家

★近年来前端技术发展迅猛,其触角已延伸到桌面软件开发领域,Electron就是这个领域首屈一指的开源项目,有很多优秀的桌面软件都是基于Electron开发的。Electron开发灵活度高,涉及知识繁多,导致很多初学者面临着入门容易进阶难的问题。作者结合多年的一线实战经验,围绕着桌面应用开发这个大课题,将丰富的实践知识集结成此书。晓伦同时也是码云推荐项目的作者,希望读者读完本书后也能在码云上开源自己的项目,为中国开源事业添砖加瓦。
——红 薯  开源中国和码云创始人&CTO

★Electron在把前端开发技术引入到桌面开发领域中的同时,还使这两个领域的技术碰撞出了很多火花,比如为网站注入脚本、截获并修改请求、访问受限的资源等,这些能力使它受到了很多极客开发者的青睐。阅读本书你不仅能学到Electron开发桌面应用的基础知识,还能学到很多极客知识。即使你没打算开发传统的桌面应用,这本书也不容错过。
——肖 佳 VMware技术专家、《HTTP抓包实战》作者

★使用Electron在PC端开发跨平台桌面应用非常流行,但国内缺少相关书。作者在Electron领域深耕多年,用Electron开发过多款产品,在开发过程中作者踩过很多“坑”。他把这些经历提炼总结,撰成此书。本书中有大量的实战内容,并且兼顾了知识的深度和广度,对于想在Electron领域发展的人很有帮助。
——李 根 前高德地图资深开发工程师

★作为目前热度很高的桌面开发工具,Electron已经在很多场景中使用,阿里企业级基础办公平台产品桌面端就基于Electron技术开发。作者通过沉淀多年的实战案例,手把手教大家走进Electron的世界。通过本书可以快速学习Electron技术栈,开发出自己的应用。
——周宜勤 阿里企业智能事业部高级工程师

★作者像一位颇有耐心的老师傅,把开发实战中关键的HTML、CSS、JS、HTTP、Electron知识由浅入深地梳理给大家,让初级Web前端工程师也能跟着一步步完成一个应用的开发,同时又不浮于表面,指明了后期改进的方向与机理。对于希望学习并深度理解Electron开发的同学来说,这显然是一本干货满满的手边书。
——水 歌 WebCell 框架作者、freeCodeCamp 成都社区负责人

★Web发展日新月异,浏览器端的技术也在这几年发生了巨大的变革,数据驱动、组件化、工程化等一系列手段使得在Web端构建一个复杂应用不再成为问题。如今,这些前端技术的成功经验也将被用来满足桌面应用领域的需求,跨平台优势和背后庞大的开源资源让开发者有了更多的选择空间,Electron正是从一系列方案中脱颖而出的佼佼者。本书为想学习和使用这项技术的开发者们提供了丰富且成体系的学习参考,更可贵的是,作者设身处地地站在开发者的角度,为大家提供了一条平滑的学习曲线,引导读者逐步掌握书中的技术,并结合了完整的范例供读者实战。作者同时也对当下Electron中存在的问题进行了剖析和思考,相信入门Electron的读者会在书中找到自己的答案。
——崔西航 美团点评研发工程师

★控制技术栈的复杂度,一直以来都是许多开发者和项目管理人员的追求。Electron 为我们提供了一种舒适且优雅的方案,您只需要使用熟悉的开发工具、熟悉的 Web 开发语言和框架,就可以轻松开发桌面应用。本书基于作者长时间实践的积累,非常系统地介绍了 Electron 的现状、入门知识以及深度开发的各种技巧,同时穿插了各类解决方案的优劣对比,是一本非常实用的好书!
——苏震巍 盛派网络创始人、微软MVP、《微信开发深度解析》作者

]

本书特色

[

本书以实战为导向,讲解了如何用Electron结合现代前端技术来开发桌面应用。不仅全面介绍了Electron入门需要掌握的功能和原理,而且还针对Electron开发中的重点和难点进行了重点讲解,旨在帮助读者实现快速进阶。作者是Electron领域的早期实践者,项目经验非常丰富,本书内容得到了来自阿里等大企业的一线专家的高度评价。
本书遵循渐进式的原则逐步传递知识给读者,书中以Electron知识为主线并对现代前端知识进行了有序的整合,对易发问题从深层原理的角度进行讲解,对普适需求以实践的方式进行讲解,同时还介绍了Electron生态内的大量优秀组件和项目。
全书一共14章:
第1章讲解Electron因何而来,Electron的生态、优势和不足,以及Electron未来的竞争者PWA技术;
第2章带领读者新建了一个简单的Electron项目,同时为读者介绍了一些Electron的基础知识;
第3章讲解了主进程和渲染进程的相关内容;
第4章介绍了如何把现代前端框架引入Electron项目中,集中介绍了webpack、Angular、React和Vue等框架;本书以实战为导向,讲解了如何用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访问、硬件设备访问、测试、调试、安全、发布等技术及其背后的原理;
第14章通过一个完整的工程项目串联了Electron的核心技术并展示了Electron项目开发的完整流程。

]

内容简介

[

内容简介本书以实战为导向,讲解了如何用Electron结合现代前端技术来开发桌面应用。不仅全面介绍了Electron入门需要掌握的功能和原理,而且还针对Electron开发中的重点和难点进行了重点讲解,旨在帮助读者实现快速进阶。作者是Electron领域的早期实践者,项目经验很好丰富,本书内容得到了来自阿里等大企业的一线专家的高度评价。本书遵循渐进式的原则逐步传递知识给读者,书中以Electron知识为主线并对现代前端知识进行了有序的整合,对易发问题从深层原理的角度进行讲解,对普适需求以*佳实践的方式进行讲解,同时还介绍了Electron生态内的大量组件和项目。全书一共14章:章讲解Electron因何而来,Electron的生态、优势和不足,以及Electron未来的竞争者PWA技术;第2章带领读者新建了一个简单的Electron项目,同时为读者介绍了一些Electron的基础知识;第3章讲解了主进程和渲染进程的相关内容;第4章介绍了如何把现代前端框架引入Electron项目中,集中介绍了webpack、Angular、React和Vue等框架;第5~3章依次详细讲解了界面、数据持久化、操作系统API访问、硬件设备访问、测试、调试、安全、发布等技术及其背后的原理4章通过一个完整的工程项目串联了Electron的核心技术并展示了Electron项目开发的完整流程。

]

作者简介

[

刘晓伦
资深技术专家,有十余年研发经验,是Electron及其相关技术在企业应用领域的早期实践者,GitHub/Gitee优秀开源项目作者。作者还为Electron项目提交过数个Issue和Pull Request,均被官方接纳。
曾任原远传研发中心负责人、小远机器人研发总监。现在担任一家创业公司的技术负责人,负责的产品以Electron为主要技术方向。
除此之外,作者还有着十余年的前端及C (Qt)的开发经验,深入研究过Chromium的源码及相关的协议(DevTools Protocol和V8 Debugger Protocol),其主导研发的产品为数家世界五百强企业提供服务。

]

目录

第1章 认识Electron 11.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章 轻松入门 102.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章 主进程和渲染进程 233.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章 引入现代前端框架 394.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章 窗口 565.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章 界面 796.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章 数据 1037.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章 系统 1168.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章 通信 1399.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章 硬件 15410.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章 调测 17111.1 测试 171
11.1.1 单元测试 171
11.1.2 界面测试 174
11.2 调试 177
11.2.1 渲染进程性能问题追踪 177
11.2.2 自动追踪性能问题 180
11.2.3 性能优化技巧 182
11.2.4 开发环境调试工具 185
11.2.5 生产环境调试工具 186
11.3 日志 188
11.3.1 业务日志 188
11.3.2 网络日志 189
11.3.3 崩溃报告 190
11.4 本章小结 193
第12章 安全 19412.1 保护源码 195
12.1.1 立即执行函数 195
12.1.2 禁用开发者调试工具 196
12.1.3 源码压缩与混淆 198
12.1.4 使用asar保护源码 201
12.1.5 使用V8字节码保护源码 202
12.2 保护客户 204
12.2.1 禁用Node.js集成 204
12.2.2 启用同源策略 204
12.2.3 启用沙箱隔离 205
12.2.4 禁用webview标签 205
12.3 保护网络 206
12.3.1 屏蔽虚假证书 206
12.3.2 关于防盗链 209
12.4 保护数据 211
12.4.1 使用Node.js加密解密数据 211
12.4.2 保护lowdb数据 213
12.4.3 保护electron-store数据 213
12.4.4 保护用户界面 214
12.5 提升稳定性 214
12.5.1 捕获全局异常 214
12.5.2 从异常中恢复 215
12.6 本章小结 216
第13章 发布 21813.1 生成图标 218
13.2 生成安装包 219
13.3 代码签名 221
13.4 自动升级 222
13.5 本章小结 224
第14章 实战:自媒体内容发布工具 22514.1 项目需求 225
14.2 项目架构 226
14.2.1 数据架构 226
14.2.2 技术架构 228
14.3 核心剖析 229
14.3.1 创建窗口并注入代码 229
14.3.2 开始同步文章数据 230
14.3.3 检查是否登录 232
14.3.4 上传文章图片 233
14.3.5 设置文章标题 235
14.3.6 设置文章正文 236
14.3.7 其他工作 236
14.4 辅助功能 237
14.4.1 图片缩放 237
14.4.2 用户身份验证 239
14.5 本章小结 240
附录A Mac代码签名 242
结语 256

封面

Electron实战:入门、进阶与性能优化

书名:Electron实战:入门、进阶与性能优化

作者:刘晓伦

页数:272

定价:¥79.0

出版社:机械工业出版社

出版日期:2020-05-01

ISBN:9787111653745

PDF电子书大小:147MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注