electron14之后版本使用remote

@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" };
    });
  }
});
酒肉穿肠过 佛祖心中留 世人若学我 如同入魔道
原文地址:https://www.cnblogs.com/jspdelphi/p/15606260.html