美文网首页Mac桌面应用开发全栈开发那些事儿
2019 桌面软件开发指北(一) 关于 Electron

2019 桌面软件开发指北(一) 关于 Electron

作者: 云码农 | 来源:发表于2019-07-29 14:10 被阅读53次

    大概十年前 Palm webOS 发布的时候,有一种看法认为未来的移动端软件和桌面软件将被 Web 取代。

    彼时 Chromium 未满周岁,Node.js 在娘胎里即将出世。 十年间,前者借 Google 之力一统浏览器江山,后者则颠覆了所有前端开发的工程实践。 这两者的结合则是一个划时代的跨平台的桌面软件开发新方式 - Electron。

    十年预言成为现实。

    我们不讨论原生开发。在足够的功能支持和优越的开发效率面前,大多数应用场景真的没必要再讨论是否原生开发。

    关于 Electron

    Electron 整合了 Node.js 和 Chromium。 它能够充分利用 Node.js 丰富的软件仓库,并使用 Chromium 的渲染引擎部分,同时保持小巧和可维护。

    Electron 应用结构

    Electron 程序有两类进程。

    程序入口是一个 JavaScript 脚本,称为 主进程。 开发者可以在主进程中用脚本创建页面展示用户界面。 用户界面其实是使用 HTML/CSS/JavaScript 等标准 web 技术开发的页面,运行在 渲染进程 中,由 Chromium 渲染。

    主进程能够调用所有的系统原生 API,而渲染进程则只能调用标准的 Web API。 (早期版本中渲染进程可以直接访问很多系统原生 API,为了安全考虑,新版本默认禁止渲染进程直接访问系统原生 API)

    进程间通信

    主进程与渲染进程之间可以通过 ipcRenderer/ipcMain 发送消息,或者使用 electron.remote 模块进行 IPC 通信。 渲染进程之间则可以使用 localStorage/sessionStorage/IndexedDB 等方式共享数据。

    文件结构

    运行一个最基本的 Electron 项目只需要 3 个文件,如下:

    其中,index.js 包含了软件生命周期的主要逻辑,如窗口管理,菜单栏管理等。 我们可以决定采用什么方式来创建软件的窗口,如窗口尺寸、是否全屏、透明度等。

    index.html 用于定义窗口范围内的程序界面。 采用标准的 HTML 技术,可以轻松控制文本、图片、按钮、表单的样式和行为。 也可以在页面中引入 JavaScript 和 CSS 文件,正如在浏览器中编程一样。

    2019 桌面软件开发指北(一) 关于 Electron

    相关文章

      网友评论

        本文标题:2019 桌面软件开发指北(一) 关于 Electron

        本文链接:https://www.haomeiwen.com/subject/filbrctx.html