Electron是由Github开发的开源框架,它允许开发者使用Web技术构建跨平台的桌面应用。Electron=Chromium+Node.js+Native API ,其中Chromium为Electron提供了强大的UI能力,可以不考虑兼容性的情况下,利用强大的Web生态来开发界面;Native API让Electron有了跨平台和桌面端的原生能力,比如说它有统一的原生界面,窗口、托盘这些
electron 工作流
启动流程
相关属于说明
主进程
package.json
中 main 属性对应的文件- 一个应用只会有一个主进程
- 只有主进程可以进行 gui的api 操作
渲染进程
- windows 中展示的界面提供渲染进程表现
- 一个应用可以有多个渲染进程
环境搭建
工具
- vscode
- 命令行工具
- git
- node
#在x64机器上安装ia32位版本
npm install --arch=ia32 electron
# 使用 --platform 来指定开发平台 (例如, win32、linux 等):
npm install --platform=win32 electron
设置 中国代理
ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
跳过 二进制下载
ELECTRON_SKIP_BINARY_DOWNLOAD=1 yarn install
Electron 生命周期
- ready:app 初始化完成
- dom-ready 一个窗口中的文本加载完成
- did-finish-load 导航完成时触发
- window-all-closed 所有窗口都被关闭时触发
- before-quit 在关闭窗口之前触发
- will-quit 在窗口关闭并且应用退出时触发
- quit 当窗口关闭时触发 此时删除窗口引用
创建项目
初始化应用
- npm
- Yarn
# npm
npm init
# yarn
yarn init
# npm
# couldn't auto-convert command
yarn init
# yarn
yarn init
添加 electron DEVDEPENDENCY
信息
应用需要运行 Electron API,因此这听上去可能有点反直觉。 实际上,打包后的应用本身会包含 Electron 的二进制文件,因此不需要将 Electron 作为生产环境依赖。
- npm
- Yarn
# npm
npm install electron --save-dev
# yarn
yarn add electron --dev
# npm
# couldn't auto-convert command
yarn add electron --dev
# yarn
yarn add electron --dev
导入模块
- app 应用程序的事件生命周期
- BrowerWindow 负责创建和管理应用窗口
使用预加载脚本
什么是预加载脚本
Electron 的主进程是 一个拥有着完全操作系统访问权限的 Node.js 环境。 除了 Electron 模组 之外,您也可以访问 Node.js 内置模块 和所有通过 npm 安装的包。 另一方面,出于安全原因,渲染进程默认跑在网页页面上,而并非 Node.js里。
在进程之间通信
可以使用 Electron 的 ipcMain 模块和 ipcRenderer 模块来进行进程间通信