备注:Electron 的原名是 Atom Shell。
与 NW.js 相似,Electron 提供了一个能通过 JavaScript 和 HTML 创建桌面应用的平台,同时集成 Node 来授予网页访问底层系统的权限。
但是这两个项目也有本质上的区别,使得 Electron 和 NW.js 成为两个相互独立的产品。
1. 应用的入口
在 NW.js 中,一个应用的主入口是一个页面。你在 package.json
中指定一个主页面,它会作为应用的主窗口被打开。
在 Electron 中,入口是一个 JavaScript 脚本。不同于直接提供一个URL,你需要手动创建一个浏览器窗口,然后通过 API 加载 HTML 文件。你还可以监听窗口事件,决定何时让应用退出。
Electron 的工作方式更像 Node.js 运行时。 Electron 的 APIs 更加底层,因此你可以用它替代 PhantomJS 做浏览器测试。
2. 构建系统
为了避免构建整个 Chromium 带来的复杂度,Electron 通过 libchromiumcontent
来访问 Chromium 的 Content API。libchromiumcontent
是一个独立的、引入了 Chromium Content 模块及其所有依赖的共享库。用户不需要一个强劲的机器来构建 Electron。
3. Node 集成
在 NW.js,网页中的 Node 集成需要通过给 Chromium 打补丁来实现。但在 Electron 中,我们选择了另一种方式:通过各个平台的消息循环与 libuv 的循环集成,避免了直接在 Chromium 上做改动。你可以看 node_bindings
来了解这是如何完成的。
4. 多上下文
如果你是有经验的 NW.js 用户,你应该会熟悉 Node 上下文和 web 上下文的概念。这些概念的产生源于 NW.js 的实现方式。
通过使用 Node 的多上下文特性,Electron不需要在网页中引入新的 JavaScript 上下文。
遵循下面的引导,在 Linux 上构建 Electron .PrerequisitesPython 2.7.x. 一些发行版如 CentOS 仍然使用 Python 2.6.x ,所以或...
下载Tableau DesktopTableau Desktop的免费个人版可以从 Tableau Desktop下载。 您需要注册您的详细信息才能下载。下载后,安装...
什么是Skinning?Flex中的Skinning是一个完全自定义UI组件的外观和感觉的过程。皮肤可以定义组件的文本,图像,过滤器,过渡和状...
介绍DropDownList控件包含一个下拉列表,用户可以从中选择与HTML中的SELECT表单元素类似的单个值。类声明以下是 spark.component...
Win 快捷键Mac 快捷键介绍F2F2跳转到下一个高亮错误 或 警告位置F4F4编辑源F11F3添加书签F12F12回到前一个工具窗口TabTab缩进ESC...