打开新网页窗口 #51

Merged
lyc merged 1 commits from lyc-dev into main 2024-07-22 16:25:14 +08:00
1 changed files with 60 additions and 16 deletions
Showing only changes of commit 3dc478e724 - Show all commits

View File

@ -1,4 +1,4 @@
import { app, shell, BrowserWindow, ipcMain } from 'electron' import { app, shell, BrowserWindow, ipcMain, session } from 'electron'
import { join } from 'path' import { join } from 'path'
import { electronApp, optimizer, is } from '@electron-toolkit/utils' import { electronApp, optimizer, is } from '@electron-toolkit/utils'
import icon from '../../resources/icon.png?asset' import icon from '../../resources/icon.png?asset'
@ -9,8 +9,8 @@ File({ app, shell, BrowserWindow, ipcMain })
let mainWindow, loginWindow let mainWindow, loginWindow
//登录窗口 //登录窗口
function createLoginWindow(){ function createLoginWindow() {
if(loginWindow) return if (loginWindow) return
loginWindow = new BrowserWindow({ loginWindow = new BrowserWindow({
width: 888, width: 888,
height: 520, height: 520,
@ -23,7 +23,6 @@ function createLoginWindow(){
sandbox: false, sandbox: false,
nodeIntegration: true nodeIntegration: true
} }
}) })
const loginURL = is.dev ? `http://localhost:5173/#/login` : `file://${__dirname}/index.html/login` const loginURL = is.dev ? `http://localhost:5173/#/login` : `file://${__dirname}/index.html/login`
loginWindow.loadURL(loginURL) loginWindow.loadURL(loginURL)
@ -68,8 +67,52 @@ function createMainWindow() {
} }
} }
// 作业窗口相关-开发中
let workWindow
function createWork(data) {
if (workWindow) return
workWindow = new BrowserWindow({
width: 650,
height: 500,
show: false,
frame: true,
autoHideMenuBar: true,
...(process.platform === 'linux' ? { icon } : {}),
webPreferences: {
sandbox: false,
nodeIntegration: true
}
})
workWindow.webContents.session.cookies.set(
{
url: 'https://file.ysaix.com:7868',
name: 'Admin-Token',
value: data
},
function (error) {
if (error) {
console.error('Set cookie failed:', error)
} else {
console.log('Cookie set successfully.')
}
}
)
workWindow.loadURL(
'https://file.ysaix.com:7868/teaching/classtaskassign?titleName=%E4%BD%9C%E4%B8%9A%E5%B8%83%E7%BD%AE'
)
workWindow.once('ready-to-show', () => {
workWindow.show()
})
workWindow.on('closed', () => {
workWindow = null
})
}
// 初始化完成 // 初始化完成
app.on('ready',()=>{ app.on('ready', () => {
// 设置应用程序用户模型标识符 // 设置应用程序用户模型标识符
electronApp.setAppUserModelId('com.electron') electronApp.setAppUserModelId('com.electron')
@ -86,12 +129,12 @@ app.on('ready',()=>{
if (mainWindow) { if (mainWindow) {
mainWindow.minimize() mainWindow.minimize()
} }
}); })
ipcMain.on('maximize-window', () => { ipcMain.on('maximize-window', () => {
mainWindow.isMaximized() ? mainWindow.unmaximize() : mainWindow.maximize(); mainWindow.isMaximized() ? mainWindow.unmaximize() : mainWindow.maximize()
}); })
ipcMain.on('close-window', () => { ipcMain.on('close-window', () => {
if (loginWindow) { if (loginWindow) {
loginWindow.destroy() loginWindow.destroy()
@ -99,15 +142,14 @@ app.on('ready',()=>{
if (mainWindow) { if (mainWindow) {
mainWindow.destroy() mainWindow.destroy()
} }
}); })
// 打开主窗口 // 打开主窗口
ipcMain.on('openMainWindow', () => { ipcMain.on('openMainWindow', () => {
if (!mainWindow) { if (!mainWindow) {
createMainWindow() createMainWindow()
} }
loginWindow.destroy() loginWindow.destroy()
loginWindow = null loginWindow = null
}) })
@ -121,15 +163,17 @@ app.on('ready',()=>{
loginWindow.focus() loginWindow.focus()
}) })
//打开作业窗口
ipcMain.on('openWork', (e, data) => {
createWork(data)
})
createLoginWindow() createLoginWindow()
app.on('activate', function () { app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createLoginWindow() if (BrowserWindow.getAllWindows().length === 0) createLoginWindow()
}) })
}) })
// Quit when all windows are closed, except on macOS. There, it's common // 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 // for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q. // explicitly with Cmd + Q.