Electron最新版remote问题version:^15.1.2

7,078 阅读1分钟
  • 在Electron14之后内置remote模块已经被移除,用enableRemoteModule开启remote也不能用了,解决方法如下:

  • 使用 @electron/remote模块替代

  • 使用姿势:

  • npm引入

    npm install --save @electron/remote
  • 主进程初始化开启模块,其中mainWindow为主窗口实例,注意使用以下代码的第二条开启模块,网上找了一圈都还停留在使用enableRemoteModule开启(无效)
require('@electron/remote/main').initialize()
require("@electron/remote/main").enable(mainWindow.webContents)
  • 渲染进程中引入就可以开心得编程啦
const {BrowserWindow}=require('@electron/remote')
  • 完整代码

主进程:

const { app, BrowserWindow} = require('electron')

app.on('ready', () => {
  let mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,   
    }
  })
  require('@electron/remote/main').initialize()
  require("@electron/remote/main").enable(mainWindow.webContents)
  mainWindow.loadFile('index.html')
  mainWindow.webContents.openDevTools();
 
})

渲染进程:

const {BrowserWindow}=require('@electron/remote')

window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('node-version').innerHTML = process.versions.node
    document.getElementById('send').addEventListener('click', () => {
        let win = new BrowserWindow({
            width: 800,
            height: 600,
        })
        win.loadURL('https://www.baidu.com')
    })
   
})