update.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const { autoUpdater } = require("electron-updater")
  2. const { build } = require("../../package.json")
  3. function handleUpdate(mainWindow) {
  4. autoUpdater.setFeedURL(build.publish[0].url); // 设置下载地址
  5. autoUpdater.autoDownload = false; // 是否自动更新
  6. // 检查更新出错
  7. autoUpdater.on('error', (res) => {
  8. sendUpdateMessage('error',res,'检查更新出错')
  9. })
  10. // 检查是否有版本更新
  11. autoUpdater.on('checking-for-update', (res) => {
  12. sendUpdateMessage('checking-for-update',res,'检查是否有版本更新')
  13. })
  14. // 检测到有版本更新
  15. autoUpdater.on('update-available', (res) => {
  16. sendUpdateMessage('update-available',res,'检测到有版本更新')
  17. })
  18. // 未发现有新版本
  19. autoUpdater.on('update-not-available', (res) => {
  20. sendUpdateMessage('update-not-available',res,'未发现有新版本')
  21. })
  22. // 更新下载进度事件
  23. autoUpdater.on('download-progress', progressObj => {
  24. // mainWindow.setProgressBar(progressObj.percent / 100)
  25. sendUpdateMessage('download-progress',progressObj,'更新下载进度事件')
  26. })
  27. // 下载完成,询问用户是否更新
  28. autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) => {
  29. mainWindow.webContents.send('ev-should-update', {
  30. event,
  31. releaseNotes,
  32. releaseName,
  33. releaseDate,
  34. updateUrl,
  35. quitAndUpdate
  36. })
  37. })
  38. function sendUpdateMessage(type,res,text) {
  39. mainWindow.webContents.send('ev-message', type,res,text)
  40. }
  41. }
  42. module.exports = {
  43. handleUpdate
  44. }