美文网首页
Electron简单例子

Electron简单例子

作者: 前白 | 来源:发表于2021-05-24 19:18 被阅读0次

    Electron 可以使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。我们可以把它看作一个 Node. js 的变体,它专注于桌面应用而不是 Web 服务器端。

    从开发的角度来看,Electron 应用本质上是一个 Node. js 应用程序。 与 Node.js 模块相同,应用的入口是 package.json 文件。 一个简单的 Electron 项目包含三个基本文件:package.jsonindex.hmtlmain.js

    • package.jsonNode.js项目的配置文件。
    • index.html 是桌面应用的界面页面。
    • main.js 是应用的启动入口文件。

    创建项目

    我们在指定路径中新建一个名为 my_electron 的文件夹作为项目根目录,然后在命令工具中使用 cd 命令,将当前目录更改为项目根目录:

    >cd C:\Users\lu\Desktop\my_electron
    

    如下图所示:

    image
    然后执行 npm init 命令进行项目初始化,如下图所示: image
    命令执行成功后,项目根目录下会创建一个 package.json 文件,如果全部选择默认配置,则可以直接执行 npm init -y 命令。

    修改package.json

    我们可以修改创建好的 package.json 文件,在 scripts 中添加脚本命令,如下所示:

    {
      "name": "blogs",
      "version": "1.0.0",
      "description": "",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "electron ./src/main.js"
      },
      "keywords": [],
      "author": "Silenzio",
      "license": "ISC",
      "devDependencies": {
        "electron": "^10.1.2"
      }
    }
    

    我们在这个文件中指定了一个启动脚本,之后可以通过这个脚本来启动程序,它将用 electron 来启动 src 目录下的 main.js 文件。

    还可以看到在这个文件中的 "devDependencies" 中有一项 "electron": "^10.1.2",表示将 electron 安装成功并添加到依赖中。

    创建main.js文件

    我们在项目的根目录下创建一个 src 文件夹,并在这个文件夹中创建一个 main.js 文件,这个文件就是应用的启动入口文件。

    Electron 应用使用 JavaScript 开发,其工作原理和方法与 Node.js 开发相同。electron 模块包含了 Electron 提供的所有 API 和功能,引入方法和 Node.js 模块一样,都可以通过 require() 来引入,例如:

    const electron = require('electron')
    

    electron 模块所提供的功能都是通过命名空间暴露出来的。例如 electron.app 负责管理 Electron 应用程序的生命周期,electron.BrowserWindow 类负责创建窗口等。

    示例:

    例如我们要在 main.js 文件中创建窗口,内容如下所示:

    // 引入electron
    const {app, BrowserWindow} = require('electron');
    let win;
    
    function createWindow() {
      // 创建浏览器窗口
      win = new BrowserWindow({
        width: 800,
        height: 400,
        webPreferences: {
          nodeIntegration: true,
        },
      });
    
      // 加载index.html文件
      win.loadFile('../html/index.html');
    
      // 自动打开开发者工具
      win.webContents.openDevTools();
    
      // 当 window 被关闭,这个事件会被触发
      win.on('closed', () => {
        win = null;
      });
    }
    
    // Electron 会在初始化后并准备,创建浏览器窗口时,调用这个函数
    app.on('ready', createWindow);
    // 当全部窗口关闭时退出
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit();
      }
    });
    app.on('activate', () => {
      if (win === null) {
        createWindow();
      }
    });
    

    添加index.html文件

    在上面的 main.js 文件中我们指定了一个 index.html 文件,这个 html 文件,就是程序的主页面。

    所以我们还需要在项目的根目录下创建一个 html 文件夹,在这个文件夹中创建一个 index.html 文件,内容如下所示:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>my_electron</title>
      </head>
      <body>
        <h1>你好,侠课岛!</h1>
      </body>
    </html>
    

    启动项目

    在完成了项目的创建、初始化项目、安装 electron 、创建必要文件这几个步骤之后,现在我们就可以开始启动项目啦。因为我们已经在 package.json 文件中设置了脚本命令,所以只需要直接在项目根目录下直接如下指令即可:

    npm start
    

    命令执行完成之后,程序后被启动,如下图所示:

    image
    此时桌面上启动了一个独立的程序, 这个程序中界面的左边显示的是渲染后的 index.html ,界面的右边部分则是 Chrome/Chromium 浏览器的开发者选项。因为我们在 main.js 文件中设置了 win.webContents.openDevTools(); ,所以在启动程序时会自动打开开发者工具。如果需要开发者工具,只需要将这句代码注释,然后再次启动程序即可。

    相关文章

      网友评论

          本文标题:Electron简单例子

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