我正在试图弄清楚如何从我的前端应用程序javascript中调用Electron方法。主要或渲染器过程对初学者来说会很好,大概我可以从那里完成其余的工作。
在我可以找到的所有示例中,渲染器代码附加到前端元素并添加事件侦听器:
document.querySelector('#btn').addEventListener(() => { // doElectronStuff });
这不是我所追求的......但是这个“服务器端”代码进入我的DOM似乎是一种相当严重的耦合。
使用Angular2前端,我发现了一个名为ngx-electron的好包,它将电子接口暴露为带有打字稿映射的可注入完成等。
所以现在我有一个Angular服务,我想调用一个Electron方法(以获取一些数据库的东西,或其他任何东西):
constructor(private _electron:ElectronService) {}
getAll(): Entity[] {
var results = this._electron.ipcRenderer.?????
}
我真的不知道如何使角度服务调用电子方法。我已尝试运行emit()
并尝试使用send()
等ipcRenderer
,remote.ipcMain
,但收到各种错误,所有这些似乎都无法生成连接。
希望我遗漏一些简单的东西?电子端语法和角度侧语法的组合是什么才能匹配这些?感谢
(我并不是特别坚持使用ngx-electron,但它确实看起来很好用,我假设它运行良好,一旦我越过我自己的块......)
答案 0 :(得分:1)
找到它。像往常一样,对我的监督。
// in the angular service
this._electron.ipcRenderer.send('event-aka-channel-name1', args);
// in the electron main.js
ipc.on('event-aka-channel-name1', (event, args) => { // doStuff });
我的问题显然是我通过各种日志捕获的导入拼写错误。一旦修复,其余部分按预期工作(或者至少足以让我继续前进)