From 1eb000b9b8ba5d2c481bd2ba6a852c9f5de161eb Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 22 一月 2024 13:48:09 +0800
Subject: [PATCH] 更新ui
---
electron/main/index.ts | 48 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/electron/main/index.ts b/electron/main/index.ts
index 7b6eb70..597d6e7 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -1,13 +1,11 @@
-import { app, BrowserWindow, shell, ipcMain,Menu } from 'electron'
+import { app, BrowserWindow, shell, ipcMain,Menu, IpcMainEvent } from 'electron'
import { release } from 'os'
import { join } from 'path'
-// import updater from "../preload/autoUpdate.js"
import logger from '../preload/logger.js'
-import fs from 'fs'
-import iconv from 'iconv-lite'
//koa----
import Koa from 'koa';
import Router from 'koa-router';
+import { checkUpdate } from './appVersion.js';
const koaBody = require('koa-body');
const creatorKoa=(win)=>{
const app = new Koa();
@@ -64,8 +62,13 @@
win = new BrowserWindow({
title: 'Main window',
+ transparent: true,
+ frame:store.get('debug')===undefined?true:store.get('debug'),//关闭菜单栏
fullscreen: true,// 开启默认全屏
- autoHideMenuBar:store.get('debug'), //关闭菜单栏
+ kiosk: true,
+ movable:false,// 关闭窗口移动
+
+ // autoHideMenuBar:store.get('debug'),
webPreferences: {
preload: splash,
nodeIntegration: true,
@@ -103,6 +106,8 @@
})
+
+
app.on('second-instance', () => {
if (win) {
// 如果用户试图打开另一个窗口,则将焦点放在主窗口上
@@ -110,6 +115,14 @@
win.focus()
}
})
+app.on('render-process-gone',(e,w,d)=>{
+ logger.info(`${new Date()}渲染进程被杀死${d.reason}\n`)
+ // 基于我在开发的程序本身的设定,此处重启应用就可以了
+ app.relaunch({args: process.argv.slice(1).concat(['--relaunch'])});
+ // 尝试关闭所有窗口
+ app.quit();
+})
+
app.on('activate', () => {
const allWindows = BrowserWindow.getAllWindows()
@@ -147,6 +160,31 @@
logger.info(arg)
})
})
+/**
+* 版本更新检测
+*/
+ipcMain.handle("check-update",(e:any)=>{
+ // 获取发送通知的渲染进程窗口
+ const currentWin = getWindowByEvent(e);
+ // 升级校验
+ checkUpdate(currentWin);
+});
+
+
+/**
+ * 通过窗口事件获取发送者的窗口
+ * @param event ipc发送窗口事件
+ */
+function getWindowByEvent(event: IpcMainEvent): BrowserWindow {
+ const webContentsId = event.sender.id;
+ for (const currentWin of BrowserWindow.getAllWindows()) {
+ if (currentWin.webContents.id === webContentsId) {
+ return currentWin;
+ }
+ }
+ return null;
+}
+
// 渲染端发送消息到主进程
ipcMain.on("winClose",()=>{
win?.close()
--
Gitblit v1.8.0