@electron/remote
安装
npm install --save @electron/remote
//建议使用yarn
yarn add @electron/remote
注意不要能使用-D,否则会出现调试时候正常使用,打包后报找不到包的情况
使用
主进程当中
require('@electron/remote/main').initialize()
require('@electron/remote/main').enable(mainWindow.webContents);
electron版本>=14.0.0,每个单独的webContents想要使用remote module,必须使用新的enable API来一个个使能.默认remote module是不可用的
electron版本<14.0.0 版本可以使用enableRemoteModule来控制
webPreferences{enableRemoteModule:false}可以禁用remote module
渲染进程
const { BrowserWindow } = require('@electron/remote')
不使用remote情况下调用electron dialog等信息
使用IPC消息在线程间通信
webview
// main process
app.on("web-contents-created", (e, contents) => {
if (contents.getType() == "webview") {
//启用remote
require("@electron/remote/main").enable(contents);
//替换new-window事件
contents.setWindowOpenHandler((details) => {
log.log("web-contents new-window", details.url);
return { action: "allow" };
});
}
});