Не могу общаться с помощью IPC - PullRequest
0 голосов
/ 22 мая 2019

Я начинаю с настольных приложений Electronjs, поэтому я решил использовать angularjs для представлений.

Теперь, когда я пытаюсь использовать eletron ipc для связи между этими двумя, я получаю Невозможно прочитать свойство'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');

Я, очевидно, что-то делаю не так, кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 23 мая 2019

Понял !!!

При создании BrowserWindow в main.js установить 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')
}

В результате он печатает в консоли: pong pong

...