1
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import {app, BrowserWindow, ipcMain, Menu, screen} from 'electron';
|
||||
import {app, BrowserWindow, ipcMain, Menu, screen, dialog} from 'electron';
|
||||
import { existsSync, createWriteStream, promises as fs, statSync } from 'fs';
|
||||
import {join, dirname} from 'path';
|
||||
import {spawn, ChildProcessWithoutNullStreams} from 'child_process';
|
||||
@@ -178,7 +178,7 @@ WshShell.Run Chr(34) & "${helperPath.replace(/\\/g, '\\\\')}" & Chr(34) & " " &
|
||||
});
|
||||
|
||||
setTimeout(() => app.quit(), 1000);
|
||||
} catch (error) {
|
||||
} catch (error: unknown) {
|
||||
console.error('[UPDATE] 更新失败:', error);
|
||||
}
|
||||
}
|
||||
@@ -245,7 +245,7 @@ ipcMain.handle('download-update', async (event, downloadUrl: string) => {
|
||||
isDownloading = false;
|
||||
|
||||
return { success: true, filePath: updateFilePath };
|
||||
} catch (error) {
|
||||
} catch (error: unknown) {
|
||||
isDownloading = false;
|
||||
downloadedFilePath = null;
|
||||
|
||||
@@ -304,7 +304,7 @@ WshShell.Run Chr(34) & "${helperPath.replace(/\\/g, '\\\\')}" & Chr(34) & " " &
|
||||
}, 500);
|
||||
|
||||
return { success: true };
|
||||
} catch (error) {
|
||||
} catch (error: unknown) {
|
||||
return { success: false, error: error instanceof Error ? error.message : '重启失败' };
|
||||
}
|
||||
});
|
||||
@@ -321,6 +321,37 @@ ipcMain.handle('get-update-status', () => {
|
||||
return { downloadedFilePath, isDownloading, downloadProgress, isPackaged: app.isPackaged, isDev };
|
||||
});
|
||||
|
||||
// 添加文件保存对话框处理器
|
||||
ipcMain.handle('show-save-dialog', async (event, options) => {
|
||||
if (!mainWindow) {
|
||||
return { canceled: true };
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await dialog.showSaveDialog(mainWindow, options);
|
||||
return result;
|
||||
} catch (error) {
|
||||
console.error('文件保存对话框错误:', error);
|
||||
return { canceled: true, error: error instanceof Error ? error.message : '对话框打开失败' };
|
||||
}
|
||||
});
|
||||
|
||||
// 添加文件夹选择对话框处理器
|
||||
ipcMain.handle('show-open-dialog', async (event, options) => {
|
||||
if (!mainWindow) {
|
||||
return { canceled: true };
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await dialog.showOpenDialog(mainWindow, options);
|
||||
return result;
|
||||
} catch (error) {
|
||||
console.error('文件夹选择对话框错误:', error);
|
||||
return { canceled: true, error: error instanceof Error ? error.message : '对话框打开失败' };
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
async function downloadFile(url: string, filePath: string, onProgress: (progress: any) => void): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const protocol = url.startsWith('https') ? https : http;
|
||||
|
||||
Reference in New Issue
Block a user