新开一个文件,写入以下代码
const { app, BrowserWindow, ipcMain } = require('electron')
const { createProtocol} = require('vue-cli-plugin-electron-builder/lib')
const newWindow = {
id: '',
title: '',
width: '',
height: '',
minWidth: '',
minHeight: '',
route: '', // 页面路由URL '/manage?id=123'
darkTheme:true,
resizable: true, //是否支持调整窗口大小
maximize: false, //是否最大化
minimizable: true, //是否可以最小化
backgroundColor:'#eee', //窗口背景色
data: null, //数据
isMultiWindow: false, //是否支持多开窗口 (如果为false,当窗体存在,再次创建不会新建一个窗体 只focus显示即可,,如果为true,即使窗体存在,也可以新建一个)
isMainWin: false, //是否主窗口(当为true时会替代当前主窗口)
parentId: '', //父窗口id 创建父子窗口 -- 子窗口永远显示在父窗口顶部 【父窗口可以操作】
modal: false, //模态窗口 -- 模态窗口是禁用父窗口的子窗口,创建模态窗口必须设置 parent 和 modal 选项 【父窗口不能操作】
}
/**
* 窗口配置
*/
class Window {
constructor() {
this.parentWin = null
this.main = null //当前页
this.group = {} //窗口组
// this.tray = null; //托盘
}
// 窗口配置
configWindow(windowSize = []) {
return {
width: windowSize[0],
height: windowSize[1],
minWidth: null,
minHeight: null,
backgroundColor: '#ffff',
autoHideMenuBar: true, //自动隐藏菜单栏
titleBarStyle:'default',
resizable: true,
minimizable: true,
maximizable: true,
closable: true, //窗口是否可以关闭
frame: false, //创建一个无边框窗口
show: false,
webPreferences: {
contextIsolation: false, //上下文隔离
nodeIntegration: true, //启用Node集成(是否完整的支持 node)
webSecurity: false,
enableRemoteModule: true, //是否启用远程模块(即在渲染进程页面使用remote)
}
}
}
// 获取窗口
getWindow(id) {
return BrowserWindow.fromId(id)
}
// 获取全部窗口
getAllWindows() {
return BrowserWindow.getAllWindo