美文网首页
使用 Electron 构建 JavaScript 桌面应用程序

使用 Electron 构建 JavaScript 桌面应用程序

作者: 安安_660c | 来源:发表于2022-08-17 11:05 被阅读0次

    在这篇博文中,我将向您展示使用 Electron 构建 JavaScript 桌面应用程序是多么容易。大约 13 行代码后,您将拥有一个功能齐全的 Electron 应用程序!

    我将引导您完成代码并解释所有需要了解的内容。🤝

    什么是Electron

    我们将使用 Electron 框架来创建这个应用程序。Electron 是一个免费的开源框架,主要由GitHub维护。

    它为许多应用程序提供支持,大多数人都听说过:Discord、Slack、Notion、VSCode、Spotify等等

    该框架旨在让开发人员使用 JavaScript、HTML 和 CSS 等 Web 技术创建桌面应用程序,并在 Chromium 浏览器引擎的风格中运行这些应用程序,同时将 NodeJS 用于后端环境。

    Electron 公开了有用的 API,例如 IPC(进程间通信模块),可让您从桌面应用程序中使用 NodeJS 的强大功能。Electron 最初是为 Atom 构建的,它也是由 GitHub 开发的 IDE。

    Electron 应用程序的结构

    这是一个非常简单的电子应用程序的目录布局:

    .
    ├── index.html
    ├── index.js
    ├── node_modules
    ├── package-lock.json
    └── package.json
    
    1 directory, 4 files
    
    

    让我们先创建一个 npm 项目,添加一些脚本,然后安装 electron。

    为此,让我们package.jsonnpm init.

    确保您还安装了我们将在此项目中使用的唯一库 Electron:

    npm i electron
    
    

    package.json文件将如下所示:

    {
      "name": "electron-blog-example",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "electron": "^20.0.2"
      }
    }
    
    

    现在运行npm i以安装所有依赖项。

    电子应用主要包括两件事。

    您可以将它们视为应用程序的前端和后端。

    后端

    在每个电子应用程序中,您都会有一个index.js文件。这是您实际要运行的文件。该文件负责创建桌面应用程序的主窗口,它看起来像这样:

    const { app, BrowserWindow } = require("electron");
    
    const createWindow = () => {
      const win = new BrowserWindow({
        width: 400,
        height: 400,
      });
      win.loadFile("./index.html");
    };
    
    app.whenReady().then(() => {
      createWindow();
    });
    
    

    让我们回顾一下每一行。

    const { app, BrowserWindow } = require("electron");
    
    

    这是您从 Electron 导入您需要的两个最重要的东西的地方:

    让我们BrowserWindow用来创建一个实际的浏览器窗口:

    const createWindow = () => {
      const win = new BrowserWindow({
        width: 400,
        height: 400,
      });
      win.loadFile("./index.html");
    };
    
    

    createWindow函数做了两件事:

    1. 它为浏览器窗口指定一些属性,例如宽度和高度
    2. 它加载一个名为index.html

    这几乎等同于index.html在浏览器中打开网页。

    但是,createWindow在 Electron 完全初始化之前不应调用。我们可以确定它在whenReady被调用时已经完全初始化。此函数返回一个 Promise,因此您可以将其链接起来then并拥有如下内容:

    app.whenReady().then(() => {
      createWindow();
    });
    
    

    前端

    与该index.js文件类似,有一个index.html文件包含您的应用程序的 UI。

    让我们创建一个index.html包含一些简单内容的文件:

    <!DOCTYPE html>
    <html>
      <head>
        <title>This is my first Electron app!</title>
        <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
      </head>
      <body>
        <h1>I made a Desktop App!</h1>
      </body>
    </html>
    
    

    到目前为止,我们有一个创建 BrowserWindow 的 JavaScript 文件和一个在 Electron 准备就绪时显示的简单 HTML 文件。

    运行你的第一个 Electron 应用程序

    但是我们如何运行这个东西呢?

    添加"start": "electron .","scripts"

    {
      "name": "electron-blog-example",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "electron .", // this is new
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "electron": "^20.0.2"
      }
    }
    
    

    最后,您所要做的就是运行以下命令:

    npm start
    
    

    你的第一个 Electron 应用程序将在几秒钟内启动:

    恭喜!您刚刚使用 JavaScript 构建了您的第一个桌面应用程序!

    来源:https://akoskm.com/build-a-javascript-desktop-app-with-electron

    相关文章

      网友评论

          本文标题:使用 Electron 构建 JavaScript 桌面应用程序

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