Skip to main content

桌面开发

Electron

我理解 electron 是用来开发桌面应用的,基于 web 技术栈来编写页面,然后可以通过 nodejs 调用系统能力,有跨操作系统的优势

  • 首先是 Chromium,我们可以把它理解为是一个拥有最新版浏览器特性的一个 Chrome 浏览器,它带给我们的好处就是在开发过程中无需考虑浏览器的兼容性,我们可以使用一些 ES6、ES7 最新的语法,可以放心的使用 Flex 布局,以及浏览器的最新特性,都可以尝试,不需要考虑兼容性的问题
  • Node.js 则是提供了一个文件读写、本地命令调用、以及第三方扩展的能力,并且基于 Node.js 整个强大的生态,将近几十万的 Node.js 模块都可以在整个客户端内使用
  • Native APIs 提供了一个统一的原生界面的能力,还包括一些系统通知、快捷键,还可以通过它来获取一些系统的硬件信息。还提供了桌面客户端的基础能力,像更新机制、崩溃报告这样的能力

架构

多进程模型。主要有主进程和渲染进程,两者之间的通信可以用 ipcMain 和 ipcRenderer 来实现

主进程

运行于 Nodejs 环境,可以借助 Nodejs 的 api 调用系统能力

渲染进程

BrowserWindow -- 单独的渲染器进程

preload 脚本

增强渲染器。脚本包含了那些执行于渲染器进程中,且优先于网页内容开始加载的代码

能访问 Node.js api