electron-vue开发的桌面软件如何使用electron-updater自动更新?

发布于 2022-09-11 19:37:54 字数 1672 浏览 22 评论 0

最近在搞electron-vue开发桌面软件,自然而然就遇到了软件自动更新的问题。谷歌搜了搜发现electron-updater可以用来自动更新,但是我不清楚具体怎么配置。
按照我理解的意思是autoUpdater.checkForUpdates()会去http://127.0.0.1:8088/latest这个链接去获取最新的软件,然后比较差异再决定是否更新。但是我不知道这个链接应该是什么样的文件,是打包好的setup.exe吗?
这样配置是否正确呢?请大佬帮帮忙看看。
下面是当前关键代码

package.json
build: {
...
    "publish": [
  {
    "provider": "generic",
    "url": "http://127.0.0.1:8088/latest"
  }
  ...
}
main/index.js
import { autoUpdater } from "electron-updater"
...
function createWindow () {
  /**
   * Initial window options
   */
  mainWindow = new BrowserWindow({
    height: 563,
    useContentSize: true,
    width: 1000
  })
  mainWindow.loadURL(winURL)

  mainWindow.on('closed', () => {
    mainWindow = null
  })
  updateHandle()
  autoUpdater.checkForUpdates()
}
app.on('ready', createWindow)
...
function updateHandle () {
  autoUpdater.setFeedURL('http://127.0.0.1:8088/latest');
  autoUpdater.on('error', function () {
    mainWindow.webContents.send('message', 'error')
  });
  autoUpdater.on('checking-for-update', function () {
    mainWindow.webContents.send('message', 'checking')
  });
  autoUpdater.on('update-available', function () {
    mainWindow.webContents.send('message', 'update')
  });
  autoUpdater.on('update-not-available', function () {
    mainWindow.webContents.send('message', 'is_new')
  });

  autoUpdater.on('update-downloaded', function () {
    ipcMain.on('isUpdateNow', () => {
      autoUpdater.quitAndInstall();
    });
    mainWindow.webContents.send('isUpdateNow')
  });

  ipcMain.on('update-version', () => {
    autoUpdater.checkForUpdates();
  })
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文