litian
2025-04-14 1d37cc9cb15c01d0f411f2c8c384f71a612fb2b9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { autoUpdater } from 'electron-updater'
import { downloaderFileCtx } from './config'
let mainWin = null
 
export const checkUpdate = (win, ipcMain) => {
  mainWin = win
  autoUpdater.autoDownload = true // 自动下载
  autoUpdater.autoInstallOnAppQuit = true // 应用退出后自动安装
  // 检测是否有更新包并通知
  // 测试下载更新
  autoUpdater.setFeedURL(downloaderFileCtx)
  autoUpdater.checkForUpdates()
  autoUpdater.on('download-progress', (prog) => {
    mainWin.webContents.send('updateDownloadProgress', {
      speed: Math.ceil(prog.bytesPerSecond / 1000), // 网速
      percent: Math.ceil(prog.percent) // 百分比
    })
  })
  autoUpdater.on('update-downloaded', (info) => {
    mainWin.webContents.send('updateDownloadSuccess')
    // 下载完成后强制用户安装,不推荐
    // autoUpdater.quitAndInstall();
  })
 
  ipcMain.on('updateApp', () => {
    autoUpdater.quitAndInstall()
  })
}