类似推荐
编辑推荐
Electron技术专家、GitHub/Gitee优秀开源项目作者撰写,系统讲解使用JavaScript,HTML和CSS构建Electron跨平台桌面应用开发。
内容简介
本书并不是一本专门讲解Electron的书,除Electron相关知识外,还介绍了大量的JavaScript、HTML、CSS、Node.js、桌面软件开发、多进程控制、安全、社区资源及背景故事等知识。Electron是本书的主线,每章知识全部是为Electron服务的,所以说本书的知识有广度。本书的知识也有深度。举个例子,初学者可能苦于渲染进程与主进程通信的难度而大量使用remote技术。但初学者不知道的是,remote技术使用不当可能导致某些关键环节有百倍千倍的性能差异,甚至会导致不易排查的错误和安全问题的出现。这些问题背后的原理是怎样的呢?类似这样有深度的知识,在本书中有很多。
作者简介
作者刘晓伦,资深技术专家,有十余年研发经验,是Electron及其相关技术在企业应用领域的早期实践者,GitHub/Gitee优秀开源项目作者。作者还为Electron项目提交过数个Issue和Pull Request,均被官方接纳。曾任原远传研发中心负责人、小远机器人研发总监。现在担任一家创业公司的技术负责人,负责的产品以Electron为主要技术方向。除此之外,作者还有着十余年的前端及C (Qt)的开发经验,深入研究过Chromium的源码及相关的协议(DevTools Protocol和V8 Debugger Protocol),其主导研发的产品为数家世界五百强企业提供服务。
章节目录
版权信息
推荐序
前言
第1章 认识Electron
1.1 Electron的由来
1.2 基于Electron的应用
1.3 Electron的生态
1.4 Electron的优势
1.5 Electron的不足
1.6 未来的竞争者PWA
1.7 本章小结
第2章 轻松入门
2.1 搭建开发环境
2.2 创建窗口界面
2.3 启动窗口
2.4 引用JavaScript
2.5 Electron API演示工具
2.6 试验工具Electron Fiddle
2.7 本章小结
第3章 主进程和渲染进程
3.1 区分主进程与渲染进程
3.2 进程调试
3.2.1 调试主进程
3.2.2 调试渲染进程
3.3 进程互访
3.3.1 渲染进程访问主进程对象
3.3.2 渲染进程访问主进程类型
3.3.3 渲染进程访问主进程自定义内容
3.3.4 主进程访问渲染进程对象
3.4 进程间消息传递
3.4.1 渲染进程向主进程发送消息
3.4.2 主进程向渲染进程发送消息
3.4.3 渲染进程之间消息传递
3.5 remote模块的局限性
3.6 本章小结
第4章 引入现代前端框架
4.1 引入webpack
4.1.1 认识webpack
4.1.2 配置webpack
4.1.3 主进程入口程序
4.1.4 渲染进程入口程序
4.1.5 自定义入口页面
4.1.6 使用jQuery
4.2 引入Angular
4.2.1 认识Angular
4.2.2 环境搭建
4.2.3 项目结构
4.3 引入React
4.3.1 认识React
4.3.2 环境搭建
4.3.3 项目结构
4.3.4 项目引荐
4.4 引入Vue
4.4.1 认识Vue
4.4.2 环境搭建
4.4.3 项目结构
4.4.4 调试配置
4.5 本章小结
第5章 窗口
5.1 窗口的常用属性及应用场景
5.2 窗口标题栏和边框
5.2.1 自定义窗口的标题栏
5.2.2 窗口的控制按钮
5.2.3 窗口最大化状态控制
5.2.4 防抖与限流
5.2.5 记录与恢复窗口状态
5.2.6 适时地显示窗口
5.3 不规则窗口
5.3.1 创建不规则窗口
5.3.2 点击穿透透明区域
5.4 窗口控制
5.4.1 阻止窗口关闭
5.4.2 多窗口竞争资源
5.4.3 模态窗口与父子窗口
5.4.4 Mac系统下的关注点
5.5 本章小结
第6章 界面
6.1 页面内容
6.1.1 获取webContents实例
6.1.2 页面加载事件及触发顺序
6.1.3 页面跳转事件
6.1.4 单页应用中的页内跳转
6.1.5 页面缩放
6.1.6 渲染海量数据元素
6.2 页面容器
6.2.1 webFrame
6.2.2 webview
6.2.3 BrowserView
6.3 脚本注入
6.3.1 通过preload参数注入脚本
6.3.2 通过executeJavaScript注入脚本
6.3.3 禁用窗口的beforeunload事件
6.4 页面动效
6.4.1 使用CSS控制动画
6.4.2 使用JavaScript控制动画
6.5 本章小结
第7章 数据
7.1 使用本地文件持久化数据
7.1.1 用户数据目录
7.1.2 读写本地文件
7.1.3 值得推荐的第三方库
7.2 使用浏览器技术持久化数据
7.2.1 浏览器数据存储技术对比
7.2.2 使用第三方库访问IndexedDB
7.2.3 读写受限访问的Cookie
7.2.4 清空浏览器缓存
7.3 使用SQLite持久化数据
7.4 本章小结
第8章 系统
8.1 系统对话框
8.1.1 使用系统文件对话框
8.1.2 关于对话框
8.2 菜单
8.2.1 窗口菜单
8.2.2 HTML右键菜单
8.2.3 系统右键菜单
8.2.4 自定义系统右键菜单
8.3 快捷键
8.3.1 监听网页按键事件
8.3.2 监听全局按键事件
8.4 托盘图标
8.4.1 托盘图标闪烁
8.4.2 托盘图标菜单
8.5 剪切板
8.5.1 把图片写入剪切板
8.5.2 读取并显示剪切板里的图片
8.6 系统通知
8.6.1 使用HTML API发送系统通知
8.6.2 主进程内发送系统通知
8.7 其他
8.7.1 使用系统默认应用打开文件
8.7.2 接收拖拽到窗口中的文件
8.7.3 使用系统字体
8.7.4 最近打开的文件
8.8 本章小结
第9章 通信
9.1 与Web服务器通信
9.1.1 禁用同源策略以实现跨域
9.1.2 Node.js访问HTTP服务的不足
9.1.3 使用WebSocket通信
9.1.4 截获并修改网络请求
9.2 与系统内其他应用通信
9.2.1 Electron应用与其他应用通信
9.2.2 网页与Electron应用通信
9.3 自定义协议(protocol)
9.4 使用socks5代理
9.5 本章小结
第10章 硬件
10.1 屏幕
10.1.1 获取扩展屏幕
10.1.2 在自助服务机中使用Electron
10.2 音视频设备
10.2.1 使用摄像头和麦克风
10.2.2 录屏
10.3 电源
10.3.1 电源的基本状态和事件
10.3.2 监控系统挂起与锁屏事件
10.3.3 阻止系统锁屏
10.4 打印机
10.4.1 控制打印行为
10.4.2 导出PDF
10.5 硬件信息
10.5.1 获取目标平台硬件信息
10.5.2 使用硬件串号控制应用分发
10.6 本章小结
第11章 调测
11.1 测试
11.1.1 单元测试
11.1.2 界面测试
11.2 调试
11.2.1 渲染进程性能问题追踪
11.2.2 自动追踪性能问题
11.2.3 性能优化技巧
11.2.4 开发环境调试工具
11.2.5 生产环境调试工具
11.3 日志
11.3.1 业务日志
11.3.2 网络日志
11.3.3 崩溃报告
11.4 本章小结
第12章 安全
12.1 保护源码
12.1.1 立即执行函数
12.1.2 禁用开发者调试工具
12.1.3 源码压缩与混淆
12.1.4 使用asar保护源码
12.1.5 使用V8字节码保护源码
12.2 保护客户
12.2.1 禁用Node.js集成
12.2.2 启用同源策略
12.2.3 启用沙箱隔离
12.2.4 禁用webview标签
12.3 保护网络
12.3.1 屏蔽虚假证书
12.3.2 关于防盗链
12.4 保护数据
12.4.1 使用Node.js加密解密数据
12.4.2 保护lowdb数据
12.4.3 保护electron-store数据
12.4.4 保护用户界面
12.5 提升稳定性
12.5.1 捕获全局异常
12.5.2 从异常中恢复
12.6 本章小结
第13章 发布
13.1 生成图标
13.2 生成安装包
13.3 代码签名
13.4 自动升级
13.5 本章小结
第14章 实战:自媒体内容发布工具
14.1 项目需求
14.2 项目架构
14.2.1 数据架构
14.2.2 技术架构
14.3 核心剖析
14.3.1 创建窗口并注入代码
14.3.2 开始同步文章数据
14.3.3 检查是否登录
14.3.4 上传文章图片
14.3.5 设置文章标题
14.3.6 设置文章正文
14.3.7 其他工作
14.4 辅助功能
14.4.1 图片缩放
14.4.2 用户身份验证
14.5 本章小结
附录A Mac代码签名
结语
Electron实战:入门、进阶与性能优化是2020年由机械工业出版社华章分社出版,作者刘晓伦。
得书感谢您对《Electron实战:入门、进阶与性能优化》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。