新书速递

作为一个前端开发人员,你可能已经听说过Electron了,你知道VS Code是基于这个技术开发的。其实不只VS Code,目前一些大热的软件:飞书、Slack、WhatsApp都是基于这个技术开发的。Electron可能还没有引起你的重视,毕竟桌面软件式微、移动端和Web开发才是大方向,你的工作可能根本就不会涉及桌面开发领域的内容。但我想告诉你的是:即使工作不会涉及到,也应该学一下Electron,因为它是极客手里的利器,你可以通过他做很多Amazing的事情。

使用Electron的7大理由:

  • NO.1 开发门槛更低

相比基于C++库开发,Electron更简单

  • NO.2 开发效率更高

JavaScript是解释执行语言,天然优势

  • NO.3 学习难度降低

C++语言特性复杂,JavaScript相对简单

  • NO.4 丰富的技术扩展

可直接调用NodeJS的C++扩展

  • NO.5 繁荣的技术生态

可使用Web前端生态和NodeJS生态所有组件和技术方案

  • NO.6 避免浏览器不兼容

内置Chromium浏览器,对标准完美支持

  • NO.7 丰富的API

可使用HTML5、CSS3、ES6标准中定义的所有API

今天小编介绍《Electron实战:入门、进阶与性能优化》一书,本书以实战为导向,讲 解了如何用Electron结合现代前端技术来开发桌面应用。不仅全面介绍了Electron入门需要掌握的功能和原理,而且还针对Electron开发中的重点和难点进行了重点讲解,旨在帮助读者实现快速进阶。

作者是Electron领域的早期实践者,项目经验非常丰富,本书内容得到了来自阿里等大企业的一线专家的高度评价。本书遵循渐进式的原则逐步传递知识给读者,书中以Electron知识为主线并对现代前端知识进行了有序的整合,对易发问题从深层原理的角度进行讲解,对普适需求以实践的方式进行讲解,同时还介绍了Electron生态内的大量优秀组件和项目。

精彩抢先看

本书5大特色

NO.1 作者经验丰富

Electron早期实践者和布道者,有深入研究和丰富实践

NO.2 大部分内容官方文档中没有

Electron如何与ES6、HTML5、CSS3、NodeJS结合

Electron如何与Vue、React、Webpack等各种前端框架结合

Electron如何与发布工具、调试工具、封装库等第三方库结合

NO.3 内容组织方式更合理

以Electron为主线,根据场景讲解ES6、CSS3和HTML5核心知识

将实际案例中涉及的问题、难点、易错点剥离,讲精讲透

一看就懂的不讲,也不追求面面俱到

NO.4 足够的广度和深度

广度:不只是Electron,与之相关的JS、CSS、HTML、NodeJS等都讲

深度:对易错且不易排查的错误背后的原理进行深度剖析

NO.5 阅读体验至上

包含大量高度提炼和总结的图表,非常易于阅读和理解

作者简介

刘晓伦,资深技术专家,有10余年研发经验,是Electron及其相关技术在企业应用领域的早期实者,GitHub/Gitee优秀开源项目作者。

原远传研发中心负责人、小远机器人研发总监。现在担任一家创业公司的技术负责人,负责的产品以Electron为主要技术方向。

除此之外,作者还有着十余年的前端及C++(Qt)的开发经验,曾为数家世界五百强企业提供技术服务。

专家推荐

本书系统、全面地介绍了开发Electron桌面应用所需要的知识,包含大量作者在实战过程中总结出来的难点解决方案和最佳实践。无论你是想简单了解,还是想深入学习,或是用作参考,都强烈推荐!

——裘逑 菜鸟国际技术部技术专家

作者结合多年的一线实战经验,围绕桌面应用开发这个大课题,将丰富的实践知识集结成此书。作者是码云推荐项目的作者,希望读者读完本书后也能在码云上开源自己的项目,为中国开源事业添砖加瓦。

——红薯 开源中国和码云创始人&CTO

阅读本书,你不仅能学到Electron开发桌面应用的基础知识,还能学到很多极客知识。

——肖佳  VMware技术专家/《HTTP抓包实战》作者

使用Electron开发跨平台桌面应用非常流行,作者用Electron开发过多款产品,他把这些经历总结成此书。本书中有大量的实战内容,兼顾了知识的深度和广度,对于想在Electron领域发展的人很有帮助。

——李根 前高德地图资深开发工程师

Electron已经在很多场景中被广泛使用,阿里企业级基础办公平台产品桌面端是基于Electron技术开发的。通过本书可以快速学习Electron技术栈,开发出自己的应用。

——周宜勤 阿里企业智能事业部高级工程师

作者由浅入深地对Electron的知识进行了梳理,让初级Web前端工程师也能跟着一步步完成一个应用的开发,同时又不浮于表面,指明了后期改进的方向与机理。

——水歌 WebCell框架作者/freeCodeCamp成都社区负责人

实拍图

目录

●第1章 认识Electron  1

1.1Electron的由来  1

1.2 基于Electron的应用  4

1.3Electron的生态  5

1.4Electron的优势  5

1.5Electron的不足  6

1.6 未来的竞争者PWA  7

1.7 本章小结  9

●第2章 轻松入门  10

2.1 搭建开发环境  10

2.2 创建窗口界面  13

2.3 启动窗口  14

2.4 引用JavaScript  16

2.5Electron 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.5remote模块的局限性  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.4Mac系统下的关注点  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.1webFrame  88

6.2.2webview  90

6.2.3BrowserView  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.2HTML右键菜单  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.2Node.js访问HTTP服务的不足  141

9.1.3 使用WebSocket通信  142

9.1.4 截获并修改网络请求  144

9.2 与系统内其他应用通信  146

9.2.1Electron应用与其他应用通信  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.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章 安全  194

12.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章 发布  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.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

附录AMac代码签名  242

结语  256

上下滑动查看

点击链接了解详情并购买

更多精彩新书

上新 | 终于!《iOS 全埋点解决方案》正式出版
上新 | 智能领域系统能力培养大成之作!——《智能计算系统》重磅出版!
上新 | 新生代的开源监控系统Prometheus,一线开发者教你如何活学活用

上新 | 上新了!国内首本从原理与实践角度全面讲解InfluxDB的宝藏书

极客手中的利器Electron相关推荐

  1. 腾讯或推动斗鱼虎牙合并;拼多多推出“百亿补贴节”;Electron 9.2.0 发布| 极客头条

    快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重 ...

  2. 阿里巴巴创始人马云持股降至 4.8%;传小冰将从微软分拆,沈向洋“回归”;Electron 8.4.0 发布| 极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟速览新闻点! 微信小店将全面下线,并推出微信小商店 腾 ...

  3. 华为发布近2万元折叠屏手机Mate Xs;iPhone 12或支持WiFi新标;Electron 6.1.8发布 | 极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈!CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的 ...

  4. 腾讯 QQ 产品已经实现全量上云;中科院计算所发明新编程语言“木兰”;Electron 7.1.9 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  5. 联想杨元庆:没必要做操作系统和芯片;华为Mate 20 Pro被迫退出安卓 Q Beta;GitHub推赚钱新利器 | 极客头条...

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 联 ...

  6. 雷军喜提第四家上市公司;梨视频 App 被全网下架;Flutter 1.17 稳定版发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  7. MindCon | 当「赛博朋克」遇到「AI极客」会发生什么?

    「赛博朋克2077」不论你玩不玩游戏,这几天应该都见到过这个名字.知乎多次推荐的关键词.微博热搜,朋友圈刷屏,甚至b站发现页的整个背景都换成了"赛博朋克".这款游戏究竟有什么魅力, ...

  8. 马化腾:《王者荣耀》将举办AI电竞赛;美团发布自研无人机,15分钟配送到家;微软将为员工发放1500美元奖金|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. 曝 iPhone 13 系列定价有望下调:起售价或低于 5499 元;TikTok 成为全球收入最高 App|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. GEMM与AutoKernel算子优化
  2. 解决编译不通过Could not find support-compat.aar (com.android.support:support-compat:26.0.0).
  3. python批量处理csv_Python批量处理csv并保存过程代码解析
  4. Careers support for Masters students cambridge
  5. ipython notebook的安装和使用;pip和easy_install.exe的区别;几个库Scikit-Learn、NumPy、SciPy、Matplotlib的用途...
  6. CentOS下Apache环境支持GBK编码解决网页乱码问题
  7. 嵌入式系统串口解析二进制数_嵌入式系统Bootloader分析及DSP56F800串口加载功能实现...
  8. 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
  9. Think in Java读书笔记--隐藏实施过程
  10. 2018-2019-2 20175224 实验五《网络编程与安全》实验报告
  11. SSDO AO 图像空间的动态全局光照
  12. 数字数据类型及其对应转移字符
  13. python字符串与列表与运算_what's the python之基本运算符及字符串、列表、元祖、集合、字典的内置方法...
  14. oracle获取表或视图的字段名、数据类型、注释
  15. [培训-无线通信基础-6]:信道编码(分组码、卷积吗、Polar码、LDPC码、Turbo码)
  16. php json转数组不成功,phpjson转数组出错
  17. 智能车|直流电机、编码器与驱动器
  18. Mysql-DATE_FORMAT()日期格式
  19. 美化html表格内容,css Javascript html表格美化
  20. bluekitchen-stm32f1/csr8311移植笔记(4)-database driver

热门文章

  1. 阻塞函数和非阻塞函数的区别
  2. 单目标应用:求解单仓库多旅行商问题(Single-Depot Multiple Travelling Salesman Problem, SD-MTSP)的人工兔优化算法ARO
  3. 酷播2 android,酷播影音播放器手机版
  4. C++ 用for循环找出100以内的质数
  5. 查找数组中两两之和等于X的整数对(C语言实现)
  6. 逐步回归算法java实现_在R中滚动逐步回归
  7. Unity实现在安卓手机上触屏控制转向--控制对象为飞机
  8. 计算机图形学——透视基透视
  9. 松雅旅馆的自动门(C++练习题)
  10. TCPDUMP(命令行操作)-抓包、筛选、高级筛选、过程文档记录