【问题标题】:Call Electron method from Frontend从前端调用 Electron 方法
【发布时间】:2017-05-29 17:59:44
【问题描述】:

我正在尝试弄清楚如何从我的前端应用程序 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() 等来对抗ipcRendererremote.ipcMain,但收到各种错误,而且似乎都无法建立连接。

希望我错过了一些简单的东西?匹配它们所需的电子侧语法和角度侧语法的组合是什么?谢谢

(我并不是特别喜欢 ngx-electron,但它看起来确实是一个不错的库,我假设它运行良好,一旦我越过了自己的障碍......)

【问题讨论】:

    标签: javascript angular electron


    【解决方案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 });
    

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

    【讨论】:

    • 我知道这有点老了,但你能分享一个工作的例子吗?当我尝试客户端 ipcRenderer 为空时。
    猜你喜欢
    • 2021-04-27
    • 2018-11-22
    • 2015-07-18
    • 2017-02-06
    • 2012-02-10
    • 2020-02-22
    • 1970-01-01
    • 2011-03-21
    • 2018-06-21
    相关资源
    最近更新 更多