diff --git a/electron/main.js b/electron/main.js index 8cc49f2..17703ef 100644 --- a/electron/main.js +++ b/electron/main.js @@ -372,6 +372,14 @@ app.whenReady().then(() => { app.relaunch(); app.exit(0); }); + ipcMain.on("quit-app", () => { + try { + app.quit(); + } catch (err) { + // 最后手段:强制退出 + app.exit(0); + } + }); app.on("activate", () => { if (BrowserWindow.getAllWindows().length === 0) { diff --git a/electron/preload.js b/electron/preload.js index ee1b5ab..40a3353 100644 --- a/electron/preload.js +++ b/electron/preload.js @@ -20,4 +20,5 @@ contextBridge.exposeInMainWorld("electronAPI", { ipcRenderer.removeAllListeners("idcard-error"); }, restartApp: () => ipcRenderer.send("restart-app"), + quitApp: () => ipcRenderer.send("quit-app"), }); diff --git a/src/App.tsx b/src/App.tsx index 2be3291..f8196bd 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -39,7 +39,8 @@ function App() { const handleTouchStart = () => { restartTimerRef.current = window.setTimeout(() => { - window.electronAPI.restartApp(); + // 长按 5 秒改为关闭应用 + window.electronAPI.quitApp(); }, 5000); }; diff --git a/src/electron.d.ts b/src/electron.d.ts index 27ae0d3..ec3a779 100644 --- a/src/electron.d.ts +++ b/src/electron.d.ts @@ -28,6 +28,7 @@ interface ElectronAPI { log: (level: string, message: any) => void; removeIdCardListeners: () => void; restartApp: () => void; + quitApp: () => void; } interface Window {