由于某些原因我的代码编译时没有错误,但是,我的消息“Helloworld”在控制台中没有正确显示。但是当我按下绑定的键组合时,我的测试信息正在显示。下面是我的代码集,index.js和main.js
这是为节点/电子编写的。 我的main.js文件:
下面的//main.js //requirements const electron = require('electron'); const app = require('electron').app; const BrowserWindow = require('electron').BrowserWindow; const remote = require('electron').remote; const ipc = require('electron').ipcMain; const globalShortcut = require('electron').globalShortcut; var mainWindow = null; //create app, instantiate window app.on('ready', function() { mainWindow = new BrowserWindow({ frame: false, height: 700, resizable: false, width: 368 }); mainWindow.loadURL(`file://${__dirname}/app/index.html`); //this is the icp bind globalShortcut.register('ctrl+shift+1', function(){ console.log("test") mainWindow.webContents.send("testBindicp" ,"HelloWorld"); }); //this is the remote bind globalShortcut.register('ctrl+shift+2', function(){ console.log("test") mainWindow.webContents.send("testBindicp" ,"HelloWorld"); }); }); //close the app ipc.on('close-main-window', function () { app.quit(); });
是我的整个index.js:
//index.js const globalShortcut = require('electron').globalShortcut; const remote = require('electron').remote; const ipc = require('electron').ipcRenderer; //testing remote render from remote bind remote.require('./main.js'); remote.on('testBindRemote', function(event){ console.log(event + " - test - from remote index.js"); }); //testing icpRenderer from icp bind ipc.on('testBindicp', function (event) { console.log(event + " - test - from icpRenderer on index.js") }); //close the app var closeEl = document.querySelector('.close'); closeEl.addEventListener('click', function() { ipc.send('close-main-window'); });
我遇到的问题是当我按下键盘绑定时,只有main.js文件中的控制台日志被发送到控制台。 close命令仍然在渲染窗口中工作,但index.js窗口中的任何其他命令都没有绑定到正确的main.js元素。
如果我做错了,请告诉我实施这些方法的正确方法,因为远程和icp结构似乎让我感到困惑。
谢谢。
答案 0 :(得分:1)
你需要将另一个参数传递给index.js文件的监听进程ipc.on
,使其像这样:
ipc.on(<channel name>, function (event, arg) {
console.log(arg + " - test - from icpRenderer on index.js");
});
了解更多信息,请访问webContents API docs