我是一个完整的电子初学者。假设您正在创建一个类似于记事本的简单应用,并希望通过单击应用的[文件>保存]菜单将您键入的内容保存在浏览器窗口的文本区域中。
菜单处理程序应在Main进程中实现,并且textarea显然在Renderer进程中。我不知道如何从Main进程访问文本区域中的内容。
答案 0 :(得分:1)
在电子应用中,主进程和渲染器进程之间的通信是通过ipc执行的。电子有ipcMain和ipcRenderer模块,分别在Main和Renderer进程中使用。
对于您拥有的任务,只要用户单击文件>保存,就可以将消息发送到渲染器进程,这将触发将文本区域保存到文件。一种实现可能是这样的:
// main process
const { app } = require('electron')
// reference to the browser window
let mainWindow
app.on('ready', () => {
// here create your browser window and assign it to mainWindow
mainWindow = createMainWindow()
})
// clicking File > Save menu triggers following function
const saveClicked = () => {
// Check mainWindow exists
if (mainWindow != null) {
mainWindow.webContents.send('clicked::file:save')
}
}
// renderer process (preload.js)
const { ipcRenderer } = require('electron')
// Now you need to listen for the event you send from the main process
ipcRenderer.on('clicked::file:save', () => {
// IMPLEMENT YOUR LOGIC HERE
})