Electron 中如何使用 Squirrel 进行自动更新?

推荐答案

在 Electron 中使用 Squirrel 进行自动更新的步骤如下:

  1. 安装依赖:首先需要安装 electron-updater 包,它封装了 Squirrel 的自动更新功能。

  2. 配置 autoUpdater:在主进程中引入并配置 autoUpdater

    -- -------------------- ---- -------
    ----- - ----------- - - ----------------------------
    
    ------------------------ - -----
    -------------------------------- - -----
    
    ---------------------------------- -- -- -
      ------------------- ------------
    ---
    
    ----------------------------------- -- -- -
      ------------------- -------------
    ---
    
    ---------------------------------------
  3. 发布更新:将打包后的应用发布到服务器或 GitHub Releases,并确保 autoUpdater 能够访问到更新文件。

  4. 处理更新事件:在渲染进程中监听更新事件并通知用户。

    -- -------------------- ---- -------
    ----- - ----------- - - --------------------
    
    ---------------------------------- -- -- -
      ------------------- ------------
    ---
    
    ----------------------------------- -- -- -
      ------------------- -------------
    ---

本题详细解读

1. 什么是 Squirrel?

Squirrel 是一个用于 Windows 和 macOS 的自动更新框架,它允许应用程序在后台自动下载并安装更新。Electron 通过 electron-updater 包封装了 Squirrel 的功能,使得开发者可以轻松实现自动更新。

2. autoUpdater 的核心功能

  • autoDownload:设置为 true 时,自动下载更新包。
  • autoInstallOnAppQuit:设置为 true 时,在应用退出时自动安装更新。
  • checkForUpdatesAndNotify():检查更新并通知用户。

3. 更新流程

  1. 检查更新:调用 autoUpdater.checkForUpdatesAndNotify() 方法,检查是否有新版本。
  2. 下载更新:如果有新版本,自动下载更新包。
  3. 安装更新:下载完成后,提示用户重启应用以安装更新。

4. 发布更新

  • GitHub Releases:将打包后的应用上传到 GitHub Releases,并确保 autoUpdater 能够访问到更新文件。
  • 自定义服务器:可以将更新文件托管在自定义服务器上,并在 autoUpdater 中配置相应的 URL。

5. 处理更新事件

  • update-available:当有新版本可用时触发。
  • update-downloaded:当更新包下载完成时触发。

通过这些事件,开发者可以在渲染进程中通知用户更新的状态,并提供相应的操作(如立即重启应用以安装更新)。

纠错
反馈