|
@@ -6,7 +6,7 @@ const { dialog } = require('electron');
|
|
|
const constants = require('./constants');
|
|
|
const utils = require('./utils');
|
|
|
const serverManager = require('./serverManager');
|
|
|
-
|
|
|
+//const menuManager = require('./menuManager'); // 引入 menuManager
|
|
|
// 获取本地版本号
|
|
|
const getLocalVersion = () => {
|
|
|
const appSettingsPath = path.join(constants.serverPath, 'server', 'appsettings.json');
|
|
@@ -76,13 +76,19 @@ const downloadFile = async (url, outputPath) => {
|
|
|
};
|
|
|
|
|
|
// 检查是否需要更新
|
|
|
-const checkForUpdates = async () => {
|
|
|
+const checkForUpdates = async (win, createMenuCallback) => {
|
|
|
const localVersion = utils.formatVersion(getLocalVersion());
|
|
|
console.log('Local version:', localVersion);
|
|
|
|
|
|
const remoteVersions = await getRemoteVersions();
|
|
|
if (!remoteVersions || remoteVersions.length === 0) {
|
|
|
console.log('No remote versions found.');
|
|
|
+ //menuManager.createMenu(win); // 未检测到新版本时更新菜单
|
|
|
+ if (typeof createMenuCallback === 'function') {
|
|
|
+ createMenuCallback(win); // 确保回调函数是函数
|
|
|
+ } else {
|
|
|
+ console.error('createMenuCallback is not a function');
|
|
|
+ }
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -99,7 +105,7 @@ const checkForUpdates = async () => {
|
|
|
});
|
|
|
|
|
|
if (response === 0) { // 用户选择 Yes
|
|
|
- await updateServer(latestRemoteVersion);
|
|
|
+ await updateServer(latestRemoteVersion, win, createMenuCallback);
|
|
|
}
|
|
|
} else {
|
|
|
console.log('未检测到新版本。');
|
|
@@ -109,11 +115,17 @@ const checkForUpdates = async () => {
|
|
|
message: `未检测到新版本。`,
|
|
|
buttons: ['关闭']
|
|
|
});
|
|
|
+ //menuManager.createMenu(win); // 未检测到新版本时更新菜单
|
|
|
+ if (typeof createMenuCallback === 'function') {
|
|
|
+ createMenuCallback(win); // 确保回调函数是函数
|
|
|
+ } else {
|
|
|
+ console.error('createMenuCallback is not a function');
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// 下载并更新 IES.ExamServer.exe
|
|
|
-const updateServer = async (latestVersion) => {
|
|
|
+const updateServer = async (latestVersion, win, createMenuCallback) => {
|
|
|
try {
|
|
|
const zipUrl = `${constants.remoteZipBaseUrl}/server-${latestVersion}.zip`; // 构造下载 URL
|
|
|
const zipPath = path.join(constants.serverPath, 'IES.ExamServer.zip');
|
|
@@ -153,7 +165,19 @@ const updateServer = async (latestVersion) => {
|
|
|
console.log('Starting IES.ExamServer...');
|
|
|
await serverManager.startServer();
|
|
|
console.log('IES.ExamServer started successfully.');
|
|
|
-
|
|
|
+ // 5. 重新加载页面
|
|
|
+ if (win) {
|
|
|
+ win.loadURL(constants.baseUrl, {
|
|
|
+ agent: constants.agent
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 6. 更新菜单栏
|
|
|
+ //menuManager.createMenu(win); // 更新成功后更新菜单
|
|
|
+ if (typeof createMenuCallback === 'function') {
|
|
|
+ createMenuCallback(win); // 确保回调函数是函数
|
|
|
+ } else {
|
|
|
+ console.error('createMenuCallback is not a function');
|
|
|
+ }
|
|
|
const { response } = await dialog.showMessageBox({
|
|
|
type: 'info',
|
|
|
title: '版本更新',
|