From 9e8758b5f2f9b7f9c5758cc858cadd768674b874 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Wed, 10 Jun 2026 11:50:21 +0000 Subject: [PATCH] feat(deeplink): add support for apt:// protocol handling - Register apt protocol handler in Electron main process - Add x-scheme-handler/apt MIME type to electron-builder config - Update desktop entry to include apt MIME type support - apt://pkgname links are now converted to spk://search/pkgname refs #IJTPFP --- electron-builder.yml | 1 + electron/main/index.ts | 15 +++++++++++++++ pkg/usr/share/applications/spark-store.desktop | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/electron-builder.yml b/electron-builder.yml index 2c753c62..fa45bc0c 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -26,6 +26,7 @@ linux: Categories: "System;" mimeTypes: - "x-scheme-handler/spk" + - "x-scheme-handler/apt" target: - "AppImage" - "deb" diff --git a/electron/main/index.ts b/electron/main/index.ts index 53cf19d1..587eba77 100644 --- a/electron/main/index.ts +++ b/electron/main/index.ts @@ -318,6 +318,21 @@ ipcMain.handle("check-for-updates", async () => { } }); +// Register custom protocol handlers +if (process.defaultApp) { + if (process.argv.length >= 2) { + app.setAsDefaultProtocolClient("spk", process.execPath, [ + path.resolve(process.argv[1]), + ]); + app.setAsDefaultProtocolClient("apt", process.execPath, [ + path.resolve(process.argv[1]), + ]); + } +} else { + app.setAsDefaultProtocolClient("spk"); + app.setAsDefaultProtocolClient("apt"); +} + app.whenReady().then(() => { // Set User-Agent for client session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => { diff --git a/pkg/usr/share/applications/spark-store.desktop b/pkg/usr/share/applications/spark-store.desktop index d2090f55..05e054db 100644 --- a/pkg/usr/share/applications/spark-store.desktop +++ b/pkg/usr/share/applications/spark-store.desktop @@ -10,4 +10,4 @@ Keywords=appstore; Terminal=false StartupNotify=true StartupWMClass=spark-store -MimeType=x-scheme-handler/spk +MimeType=x-scheme-handler/spk;x-scheme-handler/apt