我可以看到“”警报,但看不到“来自呈现者的再见”警报。
在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"
}
}发布于 2020-02-14 14:11:17
let mainWindow = new BrowserWindow(
{
width: 800,
height: 600,
webPreferences:{
nodeIntegration:true
}
});在创建浏览器窗口时,请添加nodeIntegration。您正在您的渲染器上使用Node。当您不启用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。
https://stackoverflow.com/questions/60227586
复制相似问题