导入electron.remote后,remote为undefined


学习Electron时,在渲染进程中通过remote打开开发这工具,发现点击按钮没有反应。

const remote = require('electron').remote;
let openDevToolsBtn = document.querySelector("#openDevToolsBtn");
openDevToolsBtn.addEventListener('click', function() {
	alert(remote);
	remote.getCurrentWindow().webContents.openDevTools();
});

打印remote对象时,发现是 undefined

  • 问题原因

在网上搜了一下,发现是electron 10下,remote默认关闭,需要手动开启。

  • 解决方案

找到项目中的BrowserWindow 定义部分,手动设置webPreferences中的enableRemoteModuletrue即可,添加部分如下:

win = new BrowserWindow({
	webPreferences: {
		nodeIntegration: true,  // 赋予此窗口页面中的JavaScript访问Node.js环境的能力
		// 在electron 10.0.0之后,remote模块默认关闭
		// 必须手动设置webPreferences中的enableRemoteModule为true之后才能使用
		enableRemoteModule: true,   // 打开remote模块
	}
});
  • 参考资料
  1. 升级到electron10以后的版本remote失效-CSDN


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM