2017-05-29 143 views
1

我想弄清楚如何从我的前端应用程序JavaScript调用Electron方法。主要或渲染程序对初学者来说都不会有问题,据推测我可以从那里开始工作。从前端呼叫电子方法

在所有的例子我能找到,渲染代码连接到前端元素,并增加了一个事件侦听器:

document.querySelector('#btn').addEventListener(() => { // doElectronStuff }); 

这不完全是我后虽然是...这似乎是一个让这个“服务器端”代码伸入我的DOM中非常严重的耦合。

使用的Angular2前端,我发现这似乎是一个不错的包叫做ngx-electron暴露的电子接口作为注射完成打字稿映射等

所以,现在我有我想要的角度服务调用电子方法(抓一些数据库的东西,或任何其他):

constructor(private _electron:ElectronService) {} 

getAll(): Entity[] { 
    var results = this._electron.ipcRenderer.????? 
} 

我真的不知道如何使角服务打这通电话的电子方法。我试过运行emit(),并尝试使用send()等对ipcRenderer,remote.ipcMain,但收到各种错误,所有和所有似乎无法进行连接。

希望我错过了一些简单的东西?电子端语法和角端语法结合起来需要什么来匹配这些语法?由于

(我不是特别被困在NGX电子,但它确实似乎是个很好的lib和我假设它工作得很好,一旦我得到过去我自己的块...)

回答

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 }); 

我的问题显然是我通过各种日志捕获的导入拼写错误。一旦解决了问题,剩下的就按预期工作(或者至少足以让我前进)