Javascript Electron-IPC模块未从渲染器向main发送数据

Javascript Electron-IPC模块未从渲染器向main发送数据,javascript,electron,ipc,Javascript,Electron,Ipc,我是Electron的新手,正在尝试使用IPC模块将一个变量从渲染器进程文件发送到main。我在Devtron面板中看到IPC消息正在从渲染器发送,但它没有显示main.js中收到的任何迹象。我怀疑问题可能与文件如何链接在一起有关;我从index.html中的链接脚本标记调用渲染器文件,但希望渲染器文件(在本例中为keycapture.js)直接发送到main.js,我不确定这是如何工作的 以下是给出和发送IPC信息的代码段: main.js: app.on('ready',function()

我是Electron的新手,正在尝试使用IPC模块将一个变量从渲染器进程文件发送到main。我在Devtron面板中看到IPC消息正在从渲染器发送,但它没有显示main.js中收到的任何迹象。我怀疑问题可能与文件如何链接在一起有关;我从index.html中的链接脚本标记调用渲染器文件,但希望渲染器文件(在本例中为keycapture.js)直接发送到main.js,我不确定这是如何工作的

以下是给出和发送IPC信息的代码段:

main.js:

app.on('ready',function(){

  //Set up a listener for what I've done in keycapture (in the renderer process)

      //???
  ipc.on('invokeAction', function(event, args){
    console.log("RECEIVED IPC IN MAIN!")
    var hotkey = args;
    console.log(hotkey);
    //var result = processData(data);
    //event.sender.send('actionReply', result);
    //Alright, time to test and troubleshoot.  
  });
keycapture.js(链接自main.js加载的index.html):


因此,我认为问题在于,由于我使用的是VSCode,我必须首先设置调试启动选项,以便它将调试会话识别为electron会话,而不是节点会话,这将导致VSCode在调试器中识别electron的子方法(如app、BrowserWindow等)。如果不这样做,它就不会查找这些内容,而是抛出了一个未定义的错误。

看起来应该可以工作,您能演示一下如何设置ipc吗?嗯。。。什么意思?这是IOC部分,我需要IPC组件在各自的文件头中…在main.js中应该不是ipcMain吗?问题似乎在于main.js之前没有识别“on”的属性,因此抛出了一个错误。我将为此创建一个新问题。
const{ipcMain}=require('electron')在主文件中包含ipcMain
function keyCancel(ev){
        /*******
        Use IPC to send the data back to Main to pass on to the local appData file

        Modify the below code to fit with what I'm trying to do.
        *******/

        ipcRenderer.send('invokeAction', hotkey);
        //Remove focus from the input field
        $(input).blur();
         return;
      }