Electron渲染进程与主进程进行通信

2021-12-13 10:27:33 浏览数 (1)

ipcMain

渲染进程

代码语言:javascript复制
const { ipcRenderer } = require('electron')
ipcRenderer.send('login')  //发送 login 

主进程

代码语言:javascript复制
import { ipcMain } from 'electron'
ipcMain.on('login', (event, arg) => {
	console.log(123)
}

更多ipcMain操作,参考文档地址

remote

remote在旧版本是内置的模块, 但是在新版本将被弃用,要用@electron/remote进行代替

代码语言:javascript复制
	yarn add @electron/remote

主进程

代码语言:javascript复制
	require('@electron/remote/main').initialize()
    webPreferences: {
      enableRemoteModule: true
    },

渲染进程使用

代码语言:javascript复制
// 获取当前窗口属性
const { getCurrentWindow } = require('@electron/remote')

@electron/remote参考

渲染进程获取不到electron

vue.config.js

代码语言:javascript复制
module.exports = {
  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true
    }
  }
}

background.js设置

代码语言:javascript复制
new BrowserWindow({
    width: 415,
    height: 450,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      enableRemoteModule: true
    },
  })

0 人点赞