遇到问题:renderer.js中不能使用ipcRenderer.send方法
解决办法:在main.js中修改配置代码:
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true, //这两行
contextIsolation: false,
preload: path.join(__dirname, 'renderer.js') // Specify the preload script path
}
})
win.loadFile('index.html')
}
解释:
如果没有开启上下文隔离 (contextIsolation: false
) 并且启用了 Node.js 集成 (nodeIntegration: true
),则可以直接在渲染进程(renderer.js)中引入 electron
模块并使用 ipcRenderer
。 简单来说:牺牲安全性才可以直接在renderer.js使用ipcRenderer.send,官方默认是设置成安全的。推荐还是使用preload.js,这样也可以在renderer.js中使用ipcRenderer.send,更安全!!!