electron例子 | 主进程和渲染进程通信
上图:
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <button id="btn">同步发送消息</button> </body> <script type="text/javascript" src="./renderer.js"></script> </html>
index.js
const {app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');
//监听渲染进程发送过来的lc-message事件
ipcMain.on('lc-message',(event,arg) => {
event.reply('lc-reply',"这是主进程的答复")
console.log(arg)
})
app.on("ready",() => {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
resizable: true,
frame: true,
show: true,
backgroundColor: 'pink',
webPreferences: {
nodeIntegration: true,
// 开启node
contextIsolation: false,
// 开启remote
enableRemoteModule:true
}
});
mainWindow.loadFile("index.html")
//打开控制面板
mainWindow.webContents.openDevTools();
//主进程主动发送消息
setTimeout(() =>{
mainWindow.webContents.send('lc-active',"创建窗口之后,主进程主动发送数据到渲染进程")
}, 2000)
});
app.on("window-all-closed",() => {
if(process.platform !== "darwin") {
app.quit()
}
})
renderer.js
const { ipcRenderer } = require("electron");
ipcRenderer.on('lc-active',(event, arg) =>{
console.log(event);
console.log(arg);
})
//主动发消息给主进程
ipcRenderer.send('lc-message', "子进程主动发送消息")
//监听主进程的回复
ipcRenderer.on('lc-reply',(event,arg)=>{
console.log(event)
console.log(arg)
})
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2021-01-07 程序退出时中断在void Release() throw()函数处
2021-01-07 模态对话框与非模态对话框的销毁