零基础快速搭建一个跨平台的客户端软件


在进行跨平台客户端开发的软件平台中,有NW.js和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 上下文。

在知乎上的讨论也比较多,详细可以参考:https://www.zhihu.com/question/38854224,一张比较图来看看他们之间的差异:

个人认为,目前还是electron相对比较好点,理由如下:

1.平台稍微较新

2.持续维护中(重要),感觉NW.js都要死的节奏,半年没更新

本文就electron,做一个入门介绍。

Step1:electron环境搭建

  npm install –g electron

出现如上界面,表明安装成功。

Setp 2:下载源码

Step 3:运行程序

运行界面如下:

接下来,就是具体的码代码了,我就到此为止了,靠你自己了。


分享此文章