封装 公共 window

const { BrowserWindow } = require('electron')

class AppWindow extends BrowserWindow {
    constructor(config,urlLocation){
        const basicConfig = {
            width:1024,
            height:680,
            webPreferences:{
                nodeIntegration: true
            },
            show:false,
            background:'#efefef'
        }

        const finalConfig = { ...basicConfig, ...config}
        super(finalConfig)
        this.loadURL(urlLocation)
        this.once('ready-to-show',()=>{
            this.show()
        })
    }
}

module.exports = AppWindow
-------------------
const { app,BrowserWindow,Menu,ipcMain } = require('electron')
const isDev = require('electron-is-dev')
const path = require('path')

const menuTemplate = require('./src/menuTemplate')
const AppWindow = require('./src/AppWindow')

let mainWindow, settingsWindow;

app.on('ready',() => {
    const mainWindowConfig = {
        width:1024,
        height:680,
    }
    const urlLocation = isDev ? 'http://localhost:3000/' : 'dummyurl'
    mainWindow = new AppWindow(mainWindowConfig,urlLocation)
    mainWindow.on('closed',()=>{
        mainWindow = null
    })

    ipcMain.on('open-settings-window',()=>{

        const settingsWindowConfig = {
            width:500,
            height:400,
            parent:mainWindow
        }

        const settingsFileLocation = `file://${path.join(__dirname,'./settings/settings.html')}`
        settingsWindow = new AppWindow(settingsWindowConfig,settingsFileLocation)
        settingsWindow.on('closed',()=>{
            settingsWindow = null
        })
    })


    // 设置菜单
    const menu = Menu.buildFromTemplate(menuTemplate)
    Menu.setApplicationMenu(menu)
})


app.allowRendererProcessReuse = true
posted @   13522679763-任国强  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-02-06 js 时间戳转 日期 函数
点击右上角即可分享
微信分享提示