利用ipMain可以实现本地文件保存数据,利用ipmain和fs实现写入读取等等,
首先配置预加载脚本 preload.js
const { contextBridge, ipcRenderer } = require('electron');
// 将 ipcRenderer 对象暴露给渲染进程
contextBridge.exposeInMainWorld('electron', {
ipcRenderer: {
on: (channel, listener) => {
ipcRenderer.on(channel, listener);
},
send: (channel, ...args) => {
ipcRenderer.send(channel, ...args);
}
}
});
在index.html页面插入js代码
<script>
const { ipcRenderer } = window.electron
const oBtn = document.getElementById("btn");
oBtn.onclick = function () {
ipcRenderer.send("message-from-renderer", "this is renderer");
}
ipcRenderer.on("message-from-main", (event, data) => {
console.log(data);
})
</script>
main.js也要配置预加载脚本路径
function createWindow () {
mainWindow = new BrowserWindow({
width: 1366, height: 768,
titleBarOverlay: {
color: "#fff",
symbolColor: "black",
},
webPreferences: {
nodeIntegration: false,
preload: __dirname + '/preload.js'
}
})
运行结果
//终端 输出 this is renderer
//浏览器输出 你好 rederer