我从electronjs桌面应用程序开始,所以我决定将angularjs用于视图。
现在,当我尝试使用eletron ipc进行通信时,这两个我会得到无法读取未定义的属性“发送” 。
这是我到目前为止所做的:
var ipc = require('ipc');
ipc.send('asynchronous-message', 'ping');
const ipcRenderer = require('electron').ipcRenderer;
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"
ipcRenderer.on('asynchronous-reply', function(event, arg) {
console.log(arg); // prints "pong"
});
ipcRenderer.send('asynchronous-message', 'ping');
我显然做错了什么,有人可以帮我吗?
答案 0 :(得分:1)
知道了!
在 main.js 中创建BrowserWindow时,将nodeIntegration设置为true
win = new BrowserWindow({
show: false,
webPreferences: {
nodeIntegration: true
}
});
这允许angularjs使用require(),所以在 app.controller.js 中,我刚刚做了
const { ipcRenderer } = require('electron')
// In renderer process (web page).
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')) // prints "pong"
ipcRenderer.on('asynchronous-reply', (event, arg) => {
console.log(arg) // prints "pong"
})
ipcRenderer.send('asynchronous-message', 'ping')
}
因此它在控制台中打印: ong 傍