From 16f7b62491b36f79e653927cbe8ad9ae8519a059 Mon Sep 17 00:00:00 2001 From: momen Date: Wed, 11 Mar 2026 16:08:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=95=86=E5=BA=97?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=B0=83=E8=B5=B7apm=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/main/backend/install-manager.ts | 15 ++++++++++++--- src/App.vue | 4 ++-- src/components/AppDetailModal.vue | 4 ++-- src/components/DownloadDetail.vue | 4 ++-- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/electron/main/backend/install-manager.ts b/electron/main/backend/install-manager.ts index 8b2b40a5..2c0687a4 100644 --- a/electron/main/backend/install-manager.ts +++ b/electron/main/backend/install-manager.ts @@ -634,13 +634,22 @@ ipcMain.handle("uninstall-installed", async (_event, pkgname: string) => { }; }); -ipcMain.handle("launch-app", async (_event, pkgname: string) => { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +ipcMain.handle("launch-app", async (_event, payload: any) => { + const pkgname = typeof payload === "string" ? payload : payload.pkgname; + const origin = typeof payload === "string" ? "spark" : payload.origin; + if (!pkgname) { logger.warn("No pkgname provided for launch-app"); } - const execCommand = "/opt/spark-store/extras/app-launcher"; - const execParams = ["start", pkgname]; + let execCommand = "/opt/spark-store/extras/app-launcher"; + let execParams = ["start", pkgname]; + + if (origin === "apm") { + execCommand = "/opt/spark-store/extras/apm-launcher"; + execParams = ["launch", pkgname]; + } logger.info( `Launching app: ${pkgname} with command: ${execCommand} ${execParams.join(" ")}`, diff --git a/src/App.vue b/src/App.vue index abff3840..a57e1b25 100644 --- a/src/App.vue +++ b/src/App.vue @@ -913,12 +913,12 @@ const closeDownloadDetail = () => { currentDownload.value = null; }; -const openDownloadedApp = (pkgname: string) => { +const openDownloadedApp = (pkgname: string, origin?: "spark" | "apm") => { // const encodedPkg = encodeURIComponent(download.pkgname); // openApmStoreUrl(`apmstore://launch?pkg=${encodedPkg}`, { // fallbackText: `打开应用: ${download.pkgname}` // }); - window.ipcRenderer.invoke("launch-app", pkgname); + window.ipcRenderer.invoke("launch-app", { pkgname, origin }); }; const loadCategories = async () => { diff --git a/src/components/AppDetailModal.vue b/src/components/AppDetailModal.vue index c0f75ae7..167dd093 100644 --- a/src/components/AppDetailModal.vue +++ b/src/components/AppDetailModal.vue @@ -109,7 +109,7 @@