electron 创建子窗口
时间: 2023-12-09 10:05:34 浏览: 39
在Electron中,可以通过创建BrowserWindow实例来创建子窗口。以下是创建子窗口的步骤:
1. 在主进程中,使用ipcMain模块监听一个事件,例如"create-window"。
2. 在渲染进程中,使用ipcRenderer模块向主进程发送"create-window"事件。
3. 在主进程中,接收到"create-window"事件后,创建一个BrowserWindow实例,并设置相关属性,例如窗口大小、URL等。
4. 在主进程中,使用webContents.send()方法向渲染进程发送一个事件,例如"window-created",并将新创建的BrowserWindow实例的ID作为参数传递。
5. 在渲染进程中,使用ipcRenderer模块监听"window-created"事件,并获取新创建的BrowserWindow实例的ID。
6. 在渲染进程中,使用remote模块获取新创建的BrowserWindow实例,并进行相关操作,例如显示窗口、加载URL等。
以下是一个示例代码:
在主进程中:
```javascript
const { app, BrowserWindow, ipcMain } = require('electron')
let mainWindow
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
mainWindow.loadFile('index.html')
mainWindow.on('closed', function () {
mainWindow = null
})
}
app.on('ready', createWindow)
ipcMain.on('create-window', (event, url) => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadURL(url)
win.webContents.on('did-finish-load', () => {
win.show()