1分钟学会使用Electron 编写一个登录界面

目录

阅读前必读 

一、前期准备

1.1 创建项目目录

1.2 初始化项目

1.3 安装项目包

1.3.1 安装Electron

 1.4 修改package.json配置

二、编写代码

2.1 创建主进程代码

2.2 创建静态资源目录

2.3 创建登录页面

三、运行程序


阅读前必读 

在开始之前,请确保已在您的电脑上安装了 Node.js 和 npm,并且它们的版本分别为:

  • node v16.14.2
  • npm 8.5.0

请按照以下步骤进行安装和确认版本:

  1. 打开终端或命令行界面。
  2. 输入以下命令以检查 Node.js 版本。
node -v

     3. 输入以下命令以检查 npm 版本:

npm -v

 如果您的没有Nodejs和npm,请前往 Node.js 官方网站(https://nodejs.org)下载并安装相应版本的 Node.js。


一、前期准备

1.1 创建项目目录

首先,我们可以创建一个项目目录,命名为 "electron-login",这个目录将用于存放我们的项目文件。

1.2 初始化项目

我们在终端输入 "npm init -y" 命令对项目进行初始化。

npm init -y

成功初始化项目后,我们的项目目录中将会多出一个重要的文件“package.json”。

1.3 安装项目包

1.3.1 安装Electron

使用以下命令可以快速下载并安装 Electron:

npm install electron

 1.4 修改package.json配置

将文件中的main的值修改为main.js, 在scripts中添加 "start": "electron ." 用来启动项目。

二、编写代码

2.1 创建主进程代码

创建main.js文件,作为 Electron 应用程序的主进程代码。

具体代码如下:

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

function createWindow() {
  // 创建浏览器窗口
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  });

  // 加载登录页面
  win.loadFile('login.html');
}

// 当 Electron 完成初始化并准备创建浏览器窗口时,调用 createWindow 函数
app.whenReady().then(createWindow);

// 在 macOS 上,当所有窗口关闭时退出应用
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  // 在 macOS 上,点击 dock 图标并且没有其他窗口打开时,重新创建一个窗口
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

2.2 创建静态资源目录

在根目录下创建assets目录,在assets目录下创建images, 我们需要再images里面放一个logo.jpeg格式的图片。具体结构是这样的: 

2.3 创建登录页面

在根目录下创建名为 “login.html”的文件,在里面编写一下代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>香菜的开发日记</title>
    <style>
      body {
        display: flex;
        justify-content: center;
        height: 100vh;
        margin: 0;
        background-color: #fff;
      }

      .container {
        display: flex;
        flex-direction: column;
        align-items: center;
      }

      .container .logo {
        width: 80px;
        height: 80px;
        border-radius: 50%;
        margin-top: 80px;
      }

      .container h2 {
        text-align: center;
        font-weight: 200;
      }

      .container h2 > span {
        text-align: center;
        font-weight: 400;
      }

      .login-container {
        width: 280px;
        padding: 20px;
        background-color: #f4f7f9;
        border: 1px solid #d2d9df;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
      }

      .login-container label {
        color: #1d1f24;
        font-size: 15px;
      }

      .login-container input {
        width: 100%;
        margin-bottom: 10px;
        padding: 8px;
        border: 1px solid #d2d9df;
        border-radius: 4px;
        box-sizing: border-box;
        margin-top: 5px;
      }

      .login-container button {
        width: 100%;
        padding: 8px;
        background-color: #007d39;
        border: none;
        color: white;
        cursor: pointer;
        border-radius: 4px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <a href="https://blog.csdn.net/bjjgff?type=blog"
      target="_blank"
        ><img src="assets/images/logo.jpeg" class="logo"
      /></a>
      <h2>登录<span>香菜的开发日记</span></h2>
      <div class="login-container">
        <label>用户名或邮箱地址</label>
        <input type="text" id="username" name="username" />
        <label>密码</label>
        <input type="password" id="password" name="password" />
        <button onclick="login()">登录</button>
      </div>
    </div>
  </body>
</html>

三、运行程序

在命令行中输入“ npm start” 来运行项目

npm start

运行成功效果如下图:

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Electron 是一种基于 Web 技术(JavaScript、HTML 和 CSS)的跨平台桌面应用程序开发框架,可以使用它来开发功能丰富的跨平台桌面应用程序。下面是使用 Electron 实现屏幕截图功能的简单示例: 1. 创建一个新的 Electron 项目: ``` mkdir screenshot-app cd screenshot-app npm init -y npm install --save electron ``` 2. 在项目根目录下创建一个 `main.js` 文件,用于启动 Electron 应用程序。在这个文件中,我们将创建一个 Electron 窗口,包含一个按钮,点击该按钮将触发屏幕截图操作: ```javascript const { app, BrowserWindow, globalShortcut, ipcMain } = require('electron') const path = require('path') const { desktopCapturer, screen } = require('electron') let mainWindow = null function createWindow () { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false } }) mainWindow.loadFile('index.html') mainWindow.on('closed', function () { mainWindow = null }) globalShortcut.register('CommandOrControl+Alt+D', () => { captureScreen() }) } function captureScreen() { desktopCapturer.getSources({types: ['screen']}, (error, sources) => { if (error) throw error for (let i = 0; i < sources.length; ++i) { if (sources[i].name === 'Entire screen') { navigator.mediaDevices.getUserMedia({ audio: false, video: { mandatory: { chromeMediaSource: 'desktop', chromeMediaSourceId: sources[i].id, minWidth: 1280, maxWidth: 1280, minHeight: 720, maxHeight: 720 } } }) .then((stream) => { const video = document.createElement('video') video.srcObject = stream video.onloadedmetadata = () => { const canvas = document.createElement('canvas') canvas.width = video.videoWidth canvas.height = video.videoHeight const ctx = canvas.getContext('2d') ctx.drawImage(video, 0, 0, canvas.width, canvas.height) const dataURL = canvas.toDataURL('image/png') mainWindow.webContents.send('screenshot', dataURL) video.remove() stream.getTracks()[0].stop() } }) .catch((error) => { console.error(error) }) } } }) } app.on('ready', createWindow) app.on('window-all-closed', function () { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', function () { if (mainWindow === null) { createWindow() } }) ipcMain.handle('synchronous-message', (event, arg) => { console.log(arg) }) ``` 在 `createWindow()` 函数中,我们创建了一个 Electron 窗口,并加载了 `index.html` 文件。我们还使用 `globalShortcut` 模块注册了一个全局快捷键(CommandOrControl+Alt+D),在按下这个快捷键时,将调用 `captureScreen()` 函数进行屏 ### 回答2: 使用Electron编写一个屏幕截图功能可以通过以下步骤实现: 1. 首先,你需要在Electron应用程序中创建一个窗口,作为截图的界面。 2. 然后,你需要使用Electron的桌面捕获API来捕获屏幕上的图像。可以使用`desktopCapturer`模块来实现。 3. 接下来,你可以将捕获到的图像显示在截图界面上。你可以使用Electron的`BrowserWindow`模块来创建一个显示图像的窗口。 4. 然后,你可以添加一些用户交互功能,例如拖动和缩放截图框来选择要截取的区域。 5. 当用户确定选择区域后,你可以使用Electron的`ipcRenderer`模块将所选区域的图像发送到主进程。 6. 在主进程中,你可以使用Electron的`nativeImage`模块将图像保存到本地文件中。 7. 最后,你可以在截图界面上显示已保存的图像,或者提供一个保存成功的提示。 总结来说,使用Electron编写一个屏幕截图功能主要涉及到创建窗口、捕获屏幕图像、显示图像、用户交互、保存图像等步骤。通过合理运用Electron的模块和API,可以很方便地实现这个功能。 ### 回答3: 要使用Electron编写一个屏幕截图功能,首先需要安装Electron开发环境并创建一个Electron项目。然后,在项目中创建一个主进程和一个渲染进程。 主进程负责创建一个窗口,并接收渲染进程的请求进行屏幕截图。在主进程中,我们可以使用Electron的屏幕模块来获取屏幕的尺寸信息。然后,可以使用Electron的桌面捕获模块来进行屏幕截图操作。 渲染进程负责创建一个界面,提供用户进行屏幕截图的操作界面。可以使用HTML、CSS和JavaScript来创建一个按钮用于触发屏幕截图功能,并通过与主进程的通信来发送截图请求。 当用户点击截图按钮时,渲染进程会向主进程发送一个截图请求。主进程接收到请求后,会调用屏幕模块获取屏幕尺寸,并通过桌面捕获模块进行屏幕截图。截图完成后,主进程将截图保存到指定的位置,并将截图的文件路径发送给渲染进程。 渲染进程接收到截图路径后,可以通过JavaScript将截图显示在界面上,或者进一步处理截图数据。 总结来说,使用Electron编写一个屏幕截图功能的过程主要包括创建主进程和渲染进程、使用屏幕模块获取屏幕尺寸信息、使用桌面捕获模块进行屏幕截图操作、与主进程进行通信发送截图请求和接收截图路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香菜的开发日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值