本章包含:
了解Electron 是什么了解Electron 是基于什么技术构建的了解Electron 与传统Web 应用程序的使用有何不同构建Electron 应用程序在您的产品中使用Electron 使用它构建真正的应用程序网络的最大优势是它随处可用。这本质上是一个用于创建协作应用程序的绝佳平台,可以从运行不同操作系统的不同设备访问这些应用程序。这意味着整个应用程序无法与浏览器环境隔离,Web应用程序无法访问文件系统,无法运行不是用JavaScript编写的代码,也无法调用与桌面应用程序一样多的操作系统API。此外,大多数Web 应用程序不需要可靠的网络连接即可使用。
构建桌面应用程序长期以来需要完全不同的技术堆栈,但我们许多人没有时间学习新的语言或架构。 Electron 允许您利用作为Web 开发人员已有的技能来构建具有本机桌面应用程序的许多功能的应用程序。
1.1. 什么是Electron?
Electron 是一个运行时,可让您使用HTML5、CSS 和JavaScript 创建桌面应用程序。这是一个由GitHub 工程师赵程(又名zcbenz)发起的开源项目。 Electron 以前称为Atom Shell,是Atom 的基础,Atom 是GitHub 使用Web 技术构建的跨平台文本编辑器。
您可能听说过或使用Apache Cordova 或Adobe PhoneGap 为iOS、Android 和Windows Phone 等移动操作系统构建打包在本机shell 中的Web 应用程序。在这种情况下,将Electron 视为类似于构建桌面应用程序的工具可能会有所帮助。
我们使用Electron 是因为它允许我们使用我们已知的Web 技术构建应用程序。在本书中,您将学习如何在Windows、macOS 和Linux 上构建调用本机操作系统API 的应用程序。
Electron 将Chromium 内容模块与Node.js 运行时集成,允许开发人员使用网页构建GUI,并通过独立于操作系统的API 访问Windows、macOS 和Linux 操作系统上的功能。
Chromium 和Node 本身就是流行的应用程序平台,两者都可以独立使用来创建大型应用程序。 Electron 将这两个平台结合在一起,允许您使用JavaScript 构建全新的应用程序类别。您可以在浏览器中执行的任何操作,都可以使用Electron 执行。任何你能用Node 做的事情,你也可以用Electron 做。
看看这两种技术结合起来能做什么将会非常有趣。您可以构建利用两个平台的应用程序,也可以构建仅使用一种平台无法实现的应用程序。这就是本书的全部内容。 Electron 是构建类似于本机桌面程序的Web 应用程序的绝佳选择,也适合围绕仅限于命令行界面的Node 应用程序构建GUI。参见图1.1。
图1.1 关卡UI
图1.1 LevelUI 是使用Electron 为Node 的LevelUp 数据库构建的GUI。该应用程序无法使用传统浏览器构建,因为它们无法访问用户计算机上的本地数据库。另外,您不能使用LevelUI 库,因为它是一个编译的C++ 模块,只能由Node(而不是浏览器)使用。
假设您要构建一个可以在计算机上显示和编辑图像文件夹的应用程序。传统的基于浏览器的应用程序无法访问文件系统,也无法访问照片目录、将照片加载到目录中或保存应用程序内所做的更改。尽管Node 允许您实现所有这些功能,但它不提供GUI,这使得普通用户难以使用该应用程序。通过将浏览器环境与Node 相结合,您可以使用Electron 创建一个可以打开和编辑照片的应用程序,并为这些操作提供交互界面,如图1.2 所示。
图1.2 Electron 将Chromium 的核心Web 浏览器组件与Node 的底层系统访问结合在一起。
Electron 并不是一个复杂的框架,而是一个简单的运行时。与从命令行使用节点类似,您可以使用Electron 命令行工具运行Electron 应用程序。您无需学习太多内容即可开始使用,并且可以自由构建应用程序,但这本书提供了一些技巧和最佳实践。
1.1.1. 什么是Chromium Content Module?
Chromium 是Google Chrome Web 浏览器的开源版本,它共享许多相同的代码和功能,但有一些细微差别并使用不同的许可证。内容模块是Chromium能够在单独的进程中渲染网页并使用GPU加速的核心代码,包含Blink渲染引擎和V8 JavaScript引擎,是网页浏览器的核心。它从Web 服务器检索并呈现HTML,加载任何引用的CSS 和JavaScript,相应地呈现页面,并运行JavaScript 脚本。
研究内容模块最简单的方法是找出它不做什么。内容模块不包括对Chrome 扩展程序的支持。当您访问页面时,书签和历史记录不会安全保存,并且不会检测页面内容是否以其他语言编写。当向Google 翻译服务请求支持时。内容模块仅包含渲染HTML、CSS 和JavaScript 所需的核心技术。
1.1.2. 什么是Node.js?
在JavaScript 存在的前15 年里,JavaScript 通常与Web 浏览器分离。支持在服务器上运行JavaScript 的方法并不多,虽然像这样的项目支持它,但并没有引起太多关注。 Node.js 项目于2009 年首次发布,是一个开源的跨平台运行时,用于使用JavaScript 开发服务器端应用程序。它使用Google 的开源V8 引擎来解释JavaScript 并添加用于访问文件系统、创建服务器和导入外部模块的API。
Node 在过去几年中获得了广泛的关注和流行,它被用于从创建Web 服务器到控制机器人到构建桌面应用程序的各种用途。 Node 附带了一个名为npm 的包管理器,它可以轻松管理超过250,000 个注册库的包。
《Electron实战》中文版!
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。