【问题标题】:ipcRenderer not receiving message from main processipcRenderer 没有收到来自主进程的消息
【发布时间】:2020-05-30 07:51:36
【问题描述】:

我可以看到“来自渲染器的问候”警报,但看不到“来自渲染器的再见”警报。

在 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>

renderer.js

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

package.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"
  }
}

【问题讨论】:

    标签: electron


    【解决方案1】:
    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

    这意味着您在创建 browserWindow 时没有启用 nodeIntegration。

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 2022-01-25
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2018-09-15
      • 2019-07-30
      • 1970-01-01
      • 2013-08-13
      相关资源
      最近更新 更多