IYUUPlus-Windows/main.js

92 lines
2.1 KiB
JavaScript
Raw Normal View History

2024-06-28 12:21:47 +08:00
const { app, BrowserWindow } = require('electron')
2024-06-27 17:29:25 +08:00
const path = require('node:path')
const server = require('./server/server');
2024-06-28 16:13:57 +08:00
const log = require('electron-log')
2024-06-28 21:57:14 +08:00
if (require('electron-squirrel-startup')) {
app.quit()
return
}
2024-06-27 17:29:25 +08:00
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
2024-06-28 16:13:57 +08:00
nodeIntegration: true,
contextIsolation: false,
2024-06-29 00:41:06 +08:00
devTools: false,
webSecurity: false,
allowRunningInsecureContent: true,
2024-06-27 17:29:25 +08:00
preload: path.join(__dirname, 'preload.js')
}
})
2024-06-27 18:27:45 +08:00
require("./menu/menu.js")
2024-06-29 00:41:06 +08:00
require("./menu/tray.js")
2024-06-27 18:27:45 +08:00
2024-06-29 00:41:06 +08:00
const url = require('url').format({
protocol: 'http',
slashes: true,
hostname: '127.0.0.1',
port: 8787
})
win.loadURL(url)
win.on('minimize', (event) => {
event.preventDefault()
win.hide()
})
win.on('close', (event) => {
event.preventDefault()
win.hide()
})
2024-06-27 17:29:25 +08:00
}
app.whenReady().then(() => {
2024-06-28 16:13:57 +08:00
log.transports.file.encoding = 'utf8';
log.transports.file.file = path.join(app.getPath('userData'), 'logs/iyuu.log');
log.transports.file.format = '{y}-{m}-{d} {h}:{i}:{s} {text}';
log.info('App is starting...');
2024-06-27 17:29:25 +08:00
server.startServer()
2024-06-28 16:13:57 +08:00
log.info("[About] 新疆萌森软件开发工作室提供技术支持");
2024-06-27 17:29:25 +08:00
2024-06-28 12:21:47 +08:00
setTimeout(() => {
createWindow()
}, 5000)
2024-06-27 17:29:25 +08:00
})
2024-06-29 00:41:06 +08:00
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
} else {
app.show()
BrowserWindow.getAllWindows().forEach(win => {
win.show()
})
}
})
2024-06-27 17:29:25 +08:00
app.on('window-all-closed', () => {
2024-06-29 00:41:06 +08:00
BrowserWindow.getAllWindows().forEach(win => {
win.hide()
})
app.hide()
2024-06-28 16:13:57 +08:00
})
2024-06-29 00:41:06 +08:00
app.on('before-quit', () => {
server.stopServer()
log.info('App is quitting...');
})
2024-06-28 16:13:57 +08:00
process.on('uncaughtException', (error) => {
log.error('Uncaught Exception:', error);
});
process.on('unhandledRejection', (reason, promise) => {
log.error('Unhandled Rejection at:', promise, 'reason:', reason);
});