【Electron】Electron开发入门(三):main process和web page 通信

本文介绍Electron框架下主进程(MainProcess)与网页(webpage)之间的通信实现方式,通过使用ipcMain和ipcRenderer模块进行双向消息传递,实现了从网页向主进程发送消息及主进程响应的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、main process 和 web page 通信
electron框架主进程(Main Process)与嵌入的网页(web page,也就是renderer process)之间的通信

Main.js里添加代码

//通信模块,mian process与renderer process(web page)
const {ipcMain} = require('electron')
//监听web page里发出的message
ipcMain.on('asynchronous-message', (event, arg) => {
  console.log("mian1" + arg)  // prints "ping"
  event.sender.send('asynchronous-reply', 'pong')//在main process里向web page发出message
})

ipcMain.on('synchronous-message', (event, arg) => {
  console.log("mian2" + arg)  // prints "ping"
  event.returnValue = 'pong'

web page里添加代码

const {ipcRenderer} = require('electron')
//监听mian process里发出的message
ipcRenderer.on('asynchronous-reply', (event, arg) => {
    // alert("web2" + arg);// prints "pong"  在electron中web page里的console方法不起作用,因此使用alert作为测试方法
  })

 //在web page里向main process发出message
  ipcRenderer.send('asynchronous-message', 'ping') // prints "pong"   
  // ipcRenderer.sendSync('synchronous-message', 'ping') // prints "pong"   
  // alert("web1" + 'ping');

二、具体项目中代码,如下图:
1、mian process 里 mian.js
这里写图片描述

2、web page 里
①、 html文件
这里写图片描述

②、js文件
这里写图片描述

3、最后成功界面
这里写图片描述

好的,首先,你需要确保已经安装了Node.jsnpm。 接下来,你可以按照以下步骤使用electron-vite开发一个登录功能: 1. 创建一个新的Electron项目并进入项目目录 ``` mkdir my-electron-app cd my-electron-app ``` 2. 初始化npm ``` npm init -y ``` 3. 安装依赖 ``` npm install --save-dev electron electron-builder vite npm install --save express ``` 4. 创建一个vite.config.js文件 ``` const { defineConfig } = require('vite') module.exports = defineConfig({ build: { outDir: 'dist', emptyOutDir: true, target: 'esnext', // 设置 electron-main 为主进程入口文件 main: 'src/electron-main/index.js', // 设置 electron-renderer 为渲染进程入口文件 renderer: 'src/electron-renderer/index.js', }, }) ``` 5. 创建一个src/electron-main/index.js文件 ``` const { app, BrowserWindow } = require('electron') const path = require('path') let mainWindow function createWindow () { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, }, }) mainWindow.loadFile(path.join(__dirname, '../electron-renderer/index.html')) mainWindow.on('closed', function () { mainWindow = null }) } app.on('ready', createWindow) app.on('window-all-closed', function () { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', function () { if (mainWindow === null) { createWindow() } }) ``` 6. 创建一个src/electron-renderer/index.js文件 ``` const express = require('express') const app = express() app.use(express.static('public')) app.listen(3000, () => console.log('App listening on port 3000!')) ``` 7. 创建一个src/electron-renderer/index.html文件 ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>My Electron App</title> </head> <body> <h1>Welcome to My Electron App</h1> <script src="http://localhost:3000/login.js"></script> </body> </html> ``` 8. 创建一个public/login.js文件 ``` console.log('Login page') ``` 9. 运行应用 ``` npx electron-builder serve ``` 10. 打包应用 ``` npx electron-builder build ``` 以上就是使用electron-vite开发一个登录功能的步骤,你可以根据自己的需求进行修改扩展。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悠悠白云a

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

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

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

打赏作者

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

抵扣说明:

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

余额充值