乐趣区

electron-实战浅谈一

ELECTRON 介绍

Electron 是可以让你使用 HTML5、css 和 Js 创建桌面应用的 runtime,能够将我们的前端代码打包成一个可安装的文件,用户进行本地安装之后,以系统(windows/Linus/macOS)应用的方式运行,而不是浏览器的方式运行。

Electron 将 chromium 和 Node 在各自领域都拥有广泛使用者的两个应用平台合二为一,让开发者可以使用 JS 创建出一种全新的应用程序。在所有浏览器能实现的功能,在 Electron 都可以实现,在 Node 能实现的功能,在 Electron 中同样可以实现。

为什么要以这种方式来做?Electron 有啥子好处:
1、Electron 将 Chromium Content Module 和 Node.js 运行时整合在一起,开发者利用 electron,可以通过 web 页面创建 GUI 界面,同时,通过与具体操作系统无关的 API,调用 windows/macOS/Linus 原生操作系统的功能。 这让我们的开发的可能性变得异常强大,比如:你要查看和编辑计算机文件夹中的图片?利用传统的浏览器方式不可以,但是 electron 可以。

2、 在应用层面,解决了一直困扰我们前端的浏览器兼容性问题,内置的特定版本的 chromium 和 nodeJS 打包应用统一了标准 。对于前端开发人员来说无疑是一种福音,就拿我之前写的一个视频会议系统的项目,如果在浏览器去做,估计浏览器兼容性问题会是一个长期的持续解决中的问题,在 electron 中就不会存在这个问题

3、对于开发桌面应用来说,减少了学习成本,让前端人员基于 Electron 也可以开发桌面应用程序, 对于前端开发人员来说,有乐更高的运行权限和更少的功能限制

4、离线应用的先天性优势,这个我就不多说了。

ELECTRON 工作原理

Elctron 应用由两种进程组成,主进程以及 0 个或者多个渲染进程。 每种进程都分别在应用中扮演不同的角色。
主进程承担着几项重要的职能,它可以相应应用生命周期事件,这些事件包括启动、退出、准备退出、正在切换到后台、正在切换回前台等等。主进程还负责与原生系统 API 进行通信。

渲染器进程由 electron 的 BrowserWindow 模块来进行创建和销毁。它可以加载 web 页面,向用户显示 GUI 界面,基于 chromium 多进程架构的设计,每个渲染进程都运行在各自的单个线程上。这些页面就可以加载 JS 文件在各自的渲染进程中执行了。与 web 界面不同的地方是,渲染进程中执行的代码可以访问 node 的所有 API,利用这个特性,渲染进程可以使用原生模块,实现与底层系统的交互。
另外要注意的点是渲染器进程之间是相互隔离的不能够直接互相通信,并且不允许他们直接访问操作系统级别的 API。要先与主进程进行通信,再由主进程进行转发或者由主进程访问安全级别 API 再返回。

未完待续 …

退出移动版