首页 > 解决方案 > 我们如何在 Electron 中将消息主进程发送到渲染器进程

问题描述

我是第一次玩电子游戏。尝试创建一个文本编辑器

在渲染中,我正在发送一条消息以指示内容已更改并需要保存:

document.getElementById('content').onkeyup = e => {
  ipcRenderer.send('SAVE_NEEDED', {
    content: e.target.innerHTML,
    fileDir
  })
}

然后ipcMain收到没问题。在菜单上我有这个:

{
  label: 'Save',
  click: _ => {
     saveFile(message)
     // trying:
     // ipcMain.send('SAVED', 'File Saved')
     },
     accelerator: 'cmd+S', // shortcut
}

让用户知道文件有。但这似乎不起作用。有没有其他方法可以做到这一点?我原以为“保存”将是一个预先创建的角色(有点)

标签: javascriptnode.jselectron

解决方案


要将消息发送回渲染器,您将使用:

win.webContents.send('asynchronous-message', {'SAVED': 'File Saved'});

并像这样接收它:

ipcRenderer.on('asynchronous-message', function (evt, message) {
    console.log(message); // Returns: {'SAVED': 'File Saved'}
});

asynchronous-message您要将其发送到的频道在哪里。它可以是任何东西。

webContents.send文档


推荐阅读