Для связи в Electron вы можете использовать ipcMain
( документы .
. В вашем коде Electron добавьте слушателя что-то вроде:
import { ipcMain } from 'electron';
ipcMain.on('REQUEST_CHANNEL', (event: any, arg: any) =>
console.log('received', event, arg);
);
В вашем угловом приложении установите модуль ngx-electron
(npm i --save ngx-electron
), а затем отправьте в Electron сообщение, похожее на следующее:
import { ElectronService } from 'ngx-electron';
import { IpcRenderer } from 'electron';
// inject the service
public renderer: IpcRenderer;
constructor(
private electronServiceInstance: ElectronService
) {
this.renderer = this.electronServiceInstance.ipcRenderer;
}
// send the message
this.renderer.send('REQUEST_CHANNEL', 'my message');
Чтобы отправить ответ, вы можете использовать несколькоспособы. То, что я предлагаю, это сделать наоборот. На Angular стороне с IpcRenderer
прослушивайте сообщения из другого канала, например, 'RESPONSE_CHANNEL'
, и от Electron отправляйте сообщения через этот канал, когда вы хотите, чтобы Angular перехватывал их.