From 8dab7999390772f1b8925cd1155921ab6d5eeb5f Mon Sep 17 00:00:00 2001 From: alger Date: Wed, 1 Jan 2025 15:05:49 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E4=BF=AE=E6=94=B9=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/index.ts | 5 +++ .../components/common/UpdateModal.vue | 33 ++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/main/index.ts b/src/main/index.ts index 54c82b5..e0e4497 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -200,5 +200,10 @@ ipcMain.on('get-store-value', (_, key) => { _.returnValue = value || ''; }); +// 添加 IPC 处理程序 +ipcMain.on('get-arch', (event) => { + event.returnValue = process.arch; +}); + // In this file you can include the rest of your app"s specific main process // code. You can also put them in separate files and require them here. diff --git a/src/renderer/components/common/UpdateModal.vue b/src/renderer/components/common/UpdateModal.vue index 1f52906..c5758ae 100644 --- a/src/renderer/components/common/UpdateModal.vue +++ b/src/renderer/components/common/UpdateModal.vue @@ -97,10 +97,41 @@ const checkForUpdates = async () => { }; const handleUpdate = async () => { - const downloadUrl = updateInfo.value.releaseInfo?.assets[0]?.browser_download_url; + const assets = updateInfo.value.releaseInfo?.assets || []; + const platform = window.electron.process.platform; + const arch = window.electron.ipcRenderer.sendSync('get-arch'); + console.log(arch); + console.log(platform); + + let downloadUrl = ''; + + // 根据平台和架构选择对应的安装包 + if (platform === 'darwin') { + // macOS + const macAsset = assets.find(asset => + asset.name.includes('mac') + ); + downloadUrl = macAsset?.browser_download_url || ''; + } else if (platform === 'win32') { + // Windows + const winAsset = assets.find(asset => + asset.name.includes('win') && + (arch === 'x64' ? asset.name.includes('x64') : asset.name.includes('ia32')) + ); + downloadUrl = winAsset?.browser_download_url || ''; + } else if (platform === 'linux') { + // Linux + const linuxAsset = assets.find(asset => + (asset.name.endsWith('.AppImage') || asset.name.endsWith('.deb')) && + asset.name.includes('x64') + ); + downloadUrl = linuxAsset?.browser_download_url || ''; + } + if (downloadUrl) { window.open(downloadUrl, '_blank'); } else { + // 如果没有找到对应的安装包,跳转到 release 页面 window.open('https://github.com/algerkong/AlgerMusicPlayer/releases/latest', '_blank'); } closeModal();