ipcRenderer не получает сообщение от основного процесса - PullRequest
0 голосов
/ 14 февраля 2020

Я вижу предупреждение "Hello from renderer", но не предупреждение "Goodbye from renderer".

Работает в Windows 10.

И я не вижу "получил!" предупреждение, которое я должен видеть, что ipcRenderer.on (...) работал.

index. js

const { app, BrowserWindow} = require("electron");

app.on('ready', () => {
  let mainWindow = new BrowserWindow(
  {
    width: 800,
    height: 600,
  });

  mainWindow.loadURL(`file://${__dirname}/index.html`);
  mainWindow.webContents.on('did-finish-load', () => {
    mainWindow.webContents.send("from-main", "teste");
  });
});

index. html

<html>

  <head>
    <title>test</title>

  <script src="./renderer.js"> </script>

  </head>

  <body>
      Wait...
  </body>

</html>

рендер. js

alert('hello from renderer');
const { ipcRenderer } = require('electron');
ipcRenderer.on('from-main', () => { alert('received!');} );
alert('goodbye from renderer');

пакет. json

{
  "name": "xxx",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "electron": "^8.0.0"
  }
}

1 Ответ

2 голосов
/ 14 февраля 2020
let mainWindow = new BrowserWindow(
  {
    width: 800,
    height: 600,
    webPreferences:{
      nodeIntegration:true
    }
  });

Пожалуйста, добавьте nodeIntegration при создании окна браузера. Вы используете Node API в вашем рендерере. Если вы не включите nodeIntegration, то вы не сможете использовать какие-либо модули узлов в своем рендерере js.

Чтобы подтвердить это, вы можете увидеть это сообщение об ошибке из консоли отладки приложения.

mainWindow.webContents.on('did-finish-load', () => {
    // open dev tools
    mainWindow.webContents.openDevTools()
    mainWindow.webContents.send("from-main", "teste");
  });

Uncaught ReferenceError: require is not defined

Это означает, что вы не включили nodeIntegration при создании browserWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...