import { autoUpdater } from 'electron-updater' ; import { BrowserWindow } from 'electron' ; /**
 * -1 检查更新失败 0 正在检查更新 1 检测到新版本，准备下载 2 未检测到新版本 3 下载中 4 下载完成
 **/ class Update { public mainWindow : BrowserWindow ; constructor ( ) { autoUpdater . setFeedURL ( 'http://127.0.0.1:25565/' ) ; autoUpdater . on ( 'error' , ( err ) => { console . log ( '更新出现错误' , err . message ) ; if ( err . message . includes ( 'sha512 checksum mismatch' ) ) { this . Message ( this . mainWindow , - 1 , 'sha512校验失败' ) ; } else { this . Message ( this . mainWindow , - 1 , '错误信息请看主进程控制台' ) ; } } ) ; autoUpdater . on ( 'checking-for-update' , ( event , arg ) => { console . log ( '开始检查更新' ) ; this . Message ( this . mainWindow , 0 ) ; } ) ; autoUpdater . on ( 'update-available' , ( event , arg ) => { console . log ( '有更新' ) ; this . Message ( this . mainWindow , 1 ) ; } ) ; autoUpdater . on ( 'update-not-available' , ( event , arg ) => { console . log ( '没有更新' ) ; this . Message ( this . mainWindow , 2 ) ; } ) ; autoUpdater . on ( 'download-progress' , ( progressObj ) => { this . Message ( this . mainWindow , 3 , progressObj ) ; } ) ; autoUpdater . on ( 'update-downloaded' , ( ) => { console . log ( '下载完成' ) ; this . Message ( this . mainWindow , 4 ) ; } ) ; } Message ( mainWindow , type , data ? ) { const senddata = { state : type , msg : data || '' } ; mainWindow . webContents . send ( 'UpdateMsg' , senddata ) ; } checkUpdate ( mainWindow ) { this . mainWindow = mainWindow ; autoUpdater . checkForUpdates ( ) . catch ( err => { console . log ( '网络连接问题' , err ) ; } ) ; } quitAndInstall ( ) { autoUpdater . quitAndInstall ( ) ; } } export default Update ;