|
|
|
|
'use strict'
|
|
|
|
|
|
|
|
|
|
import { app, protocol, BrowserWindow, nativeImage, ipcMain } from 'electron'
|
|
|
|
|
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
|
|
|
|
|
const path = require('path')
|
|
|
|
|
import * as iconManger from '@/iconManager'
|
|
|
|
|
import createTray from '@/tray'
|
|
|
|
|
const isDevelopment = process.env.NODE_ENV !== 'production'
|
|
|
|
|
|
|
|
|
|
const winURL = process.env.NODE_ENV === 'development'
|
|
|
|
|
? 'http://localhost:8080'
|
|
|
|
|
: `file://${__dirname}/index.html`
|
|
|
|
|
|
|
|
|
|
//引入自定义菜单
|
|
|
|
|
require('./menu')
|
|
|
|
|
//引入监听
|
|
|
|
|
require('./listener')
|
|
|
|
|
|
|
|
|
|
// Scheme must be registered before the app is ready
|
|
|
|
|
protocol.registerSchemesAsPrivileged([
|
|
|
|
|
{ scheme: 'app', privileges: { secure: true, standard: true } }
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
async function createWindow() {
|
|
|
|
|
// Create the browser window.
|
|
|
|
|
let win = new BrowserWindow({
|
|
|
|
|
width: 1200,
|
|
|
|
|
height: 800,
|
|
|
|
|
show: false,
|
|
|
|
|
icon: path.resolve(__dirname, iconManger.ICON_PATHS.APP_ICON),
|
|
|
|
|
webPreferences: {
|
|
|
|
|
preload: path.resolve(__dirname, './preload.js'),
|
|
|
|
|
nodeIntegration: false,
|
|
|
|
|
contextIsolation: true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
createTray(app, win, nativeImage);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
createProtocol('app')
|
|
|
|
|
win.loadURL(`${winURL}` + '/#/')
|
|
|
|
|
|
|
|
|
|
// win.webContents.openDevTools({ mode: 'right' });
|
|
|
|
|
win.once('ready-to-show', () => {
|
|
|
|
|
win.setTitle('Utils-Hub'); // 设置窗口标题
|
|
|
|
|
win.show();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
win.on('close', (e) => {
|
|
|
|
|
|
|
|
|
|
//回收BrowserWindow对象
|
|
|
|
|
app.quit();
|
|
|
|
|
// if (win.isMinimized()) {
|
|
|
|
|
// console.log('关闭应用窗口')
|
|
|
|
|
// win = null;
|
|
|
|
|
// } else {
|
|
|
|
|
// e.preventDefault();
|
|
|
|
|
// win.minimize();
|
|
|
|
|
// win.hide();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Quit when all windows are closed.
|
|
|
|
|
app.on('window-all-closed', () => {
|
|
|
|
|
if (process.platform !== 'darwin') {
|
|
|
|
|
app.quit()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
app.on('activate', () => {
|
|
|
|
|
console.log('应用激活')
|
|
|
|
|
|
|
|
|
|
if (BrowserWindow.getAllWindows().length === 0) createWindow()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
app.on('ready', async () => {
|
|
|
|
|
|
|
|
|
|
createWindow()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// Exit cleanly on request from parent process in development mode.
|
|
|
|
|
if (isDevelopment) {
|
|
|
|
|
if (process.platform === 'win32') {
|
|
|
|
|
process.on('message', (data) => {
|
|
|
|
|
if (data === 'graceful-exit') {
|
|
|
|
|
app.quit()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
process.on('SIGTERM', () => {
|
|
|
|
|
app.quit()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|