// Modules to control application life and create native browser window
const { app, BrowserWindow, Menu, protocol } = require('electron');
const path = require('path')

const mainWindowURL = 'https://wedding.weiaixh.com/backend/index?t=' + new Date().getTime();

function createWindow() {
    // Create the browser window.
    const mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        maximizable: true,
        //支持最大化
        show: false,
        //为了让初始化窗口显示无闪烁，先关闭显示，等待加载完成后再显示。
        //    webPreferences: {
        //      preload: path.join(__dirname, 'preload.js')
        //    }
    });
    Menu.setApplicationMenu(null); //隐藏应用程序菜单.
    // mainWindow.setAutoHideMenuBar(true);//自动隐藏菜单
    mainWindow.loadURL(mainWindowURL); //设置访问地址
    mainWindow.setTitle("唯爱星河"); //设置程序Title
    mainWindow.show();

    // app.commandLine.appendSwitch("--disable-http-cache")   禁用缓存

    // mainWindow.webContents.openDevTools({mode:'bottom'});

    // and load the index.html of the app.
    //mainWindow.loadFile('index.html')

    // Open the DevTools.
    // mainWindow.webContents.openDevTools()

    //禁止程序打开第二次, 第二次打开时会将焦点聚焦到上次打开的窗口.
    const gotTheLock = app.requestSingleInstanceLock();
    if (!gotTheLock) {
        app.quit();
    } else {
        // app.on('second-instance', (event, commandLine, workingDirectory) => {
        //     // 当运行第二个实例时,将会聚焦到mainWindow这个窗口
        //     if (mainWindow) {
        //         if (mainWindow.isMinimized()) mainWindow.restore();
        //         mainWindow.focus();
        //         mainWindow.show();
        //     }
        // });
    }

}

// 设置 http 权限访问也可以调用摄像头权限.
protocol.registerSchemesAsPrivileged([{
    scheme: 'http',
    privileges: {
        bypassCSP: true,
        secure: true,
        supportFetchAPI: true,
        corsEnabled: true
    }
}]);

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(() =>{
    createWindow()

    app.on('activate',
        function() {
            // On macOS it's common to re-create a window in the app when the
            // dock icon is clicked and there are no other windows open.
            if (BrowserWindow.getAllWindows().length === 0) createWindow()
        })
})

// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed',
    function() {
        if (process.platform !== 'darwin') app.quit()
    })

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.

