无法使用 IPC 与 electronjs-angularjs 通信
Can't communicate electronjs-angularjs using IPC
我开始使用 electronjs 桌面应用程序,所以我决定使用 angularjs 作为视图。
现在,当我尝试使用 eletron ipc 在这两者之间进行通信时,我得到 Cannot read 属性 'send' of undefined.
这是我目前所做的:
main.js -- electronjs
var ipc = require('ipc');
ipc.send('asynchronous-message', 'ping');
app.controller.js -- angularjs
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');
我显然做错了什么,谁能帮帮我?
知道了!!!
在 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')
}
结果它在控制台中打印:
乒乓球
乒乓
我开始使用 electronjs 桌面应用程序,所以我决定使用 angularjs 作为视图。
现在,当我尝试使用 eletron ipc 在这两者之间进行通信时,我得到 Cannot read 属性 'send' of undefined.
这是我目前所做的:
main.js -- electronjs
var ipc = require('ipc');
ipc.send('asynchronous-message', 'ping');
app.controller.js -- angularjs
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');
我显然做错了什么,谁能帮帮我?
知道了!!!
在 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')
}
结果它在控制台中打印: 乒乓球 乒乓