electron渲染进程与主进程之间通信
首先main.js中通过preload进行预加载脚本 __dirname字符串指向当前正在执行的脚本的路径
const { app, BrowserWindow } = require('electron');//引入electron
const path = require('path');
let win;
let windowConfig = {
width: 300,
height: 600,
minWidth: 300,
webPreferences: {
nodeIntegration: true,// 是否集成 Nodejs
preload: path.join(__dirname,'preload.js')
},
transparent: true,
frame: false,
// alwaysOnTop: true,
resizable: true,//可否缩放
movable: true//可否移动
};//窗口配置程序运行窗口的大小
function createWindow() {
win = new BrowserWindow(windowConfig);//创建一个窗口
win.loadURL(`file://${__dirname}/web/dist/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html
win.webContents.openDevTools(); //开启调试工具
win.on('close', () => {
//回收BrowserWindow对象
win = null;
});
win.show()
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
app.quit();
});
app.on('activate', () => {
if (win == null) {
createWindow();
}
});
const ipcMain = require('electron').ipcMain;
ipcMain.on('closeApp', function () {
app.quit();
});
ipcMain.on('window-min', function () {
win.minimize();
});
preload.js
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
minApp: () => ipcRenderer.send('window-min'),
closeApp:() => ipcRenderer.send('closeApp')
})
然后页面中通过window.electronAPI
访问定义的方法即可
electron渲染进程与主进程之间通信更多相关文章
JavaScript CSS Vue3 实现一个简单的Loading
配置和使用nvm免安装版本(nvm-noinstall.zip)
HarmonyOS:使用Node-API实现ArkTS与C/C++跨语言交互
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (一):项目简介及安装依赖
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (四):状态码的使用
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (五):POST上传文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (六):token的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)
报error:0308010C:digital envelope routines::unsupported错--nodejs版本过高(nvm安装(更换)不同版本nodejs)
小结---安装nvm解决node版本不兼容的问题(node版本切换)