1.主进程background.js引入autoUpdater

let {autoUpdater} = require('electron-updater')

2.主进程写入更新代码

if (!process.env.WEBPACK_DEV_SERVER_URL) {autoUpdater.autoDownload = falseautoUpdater.signals.updateDownloaded(() => {})autoUpdater.on('error', (error) => {log.warn('检查更新失败: ' + error == null ? 'unknown' : (error.stack || error).toString())// dialog.showErrorBox('Error: ', error == null ? 'unknown' : (error.stack || error).toString())})autoUpdater.on('update-available', (info) => {// var appInfo = {//   info: info.version,//   files: info.files,//   path: info.path,//   sha512: info.sha512,//   releaseDate: info.releaseDate// }dialog.showMessageBox({type: 'info',title: '更新提示',message: '软件需要更新,您是否立即更新?',buttons: ['推迟', '立即更新']}).then((res) => {log.warn('index:' + res.response)if (res.response === 1) {log.warn('选择升级')autoUpdater.downloadUpdate()} else {log.warn('选择不升级:')}})})// 检查更新时触发autoUpdater.on('update-available', (res) => {log.warn('检查更新时触发')// log.warn(res)// dialog.showMessageBox({//   title: '检查更新',//   message: '正在检查更新'// })})// 没有可用更新autoUpdater.on('update-not-available', () => {log.warn('没有可用更新')// dialog.showMessageBox({//   title: '已是最新版',//   message: '当前版本是最新版本。'// })})// 安装更新autoUpdater.on('update-downloaded', (res) => {// log.warn(res)log.warn('下载完毕!提示安装更新')dialog.showMessageBox({title: '升级提示!',message: '已自动升级为最新版,请等待程序安装完成并重启应用!'}, () => {log.warn('确认安装')setImmediate(() => autoUpdater.quitAndInstall(true, true))})})

3.启动应用调用检测更新函数

 if (process.env.WEBPACK_DEV_SERVER_URL) {// Load the url of the dev server if in development modewin.loadURL(process.env.WEBPACK_DEV_SERVER_URL)if (!process.env.IS_TEST) win.webContents.openDevTools()} else {createProtocol('app')// Load the index.html when not in developmentwin.loadURL('app://./index.html')autoUpdater.checkForUpdates() //检测有无新版本}

4.在vue.config中配置更新地址

module.exports = {pluginOptions: {electronBuilder: {builderOptions: {productName: "打包后的exe名称",appId: "xxx",//注意, 只有在配置了publish路径时, build之后才会生成latest.yml文件publish: [{"provider": "generic","url": "你的文件服务器地址"}]}}
.......},

5.在package.json中配置第一个版本号

"version": "0.0.1"  //package.json  这是你的版本号

6.打包你的项目生成dist_electron文件

7.安装exe到你的电脑,这是初始版本。

8.重新写了业务代码后,更改package.json中的版本号为高版本,例如0.1.2,并重新打包生成dist_electron文件,将文件中的新版本exe和lates.yml放入你的文件服务器中。

9.启动你刚开始安装的exe,此时应用会自动检测有无新版本,没有无提示,有则提示是否更新。

electron自动更新相关推荐

  1. electron 自动更新 热跟新

    electron 自动更新 热跟新 自动跟新之后不用重新安装 使用electron-upadta 自动跟新之后需要用户在重新安装一遍程序,用户体验不好,开发electron-hot-updata 插件 ...

  2. electron自动更新版本electron-updater

    首先来看效果图: 打包electron生成新的exe安装包:npm run dist 使用simplehttpserver开启存放打包好的exe安装包与yml文件的本地服务(打包目录里有这两个文件) ...

  3. electron打包可选择安装位置,可自动更新

    Electron打包调参软件(windows版) ----------------------------------可选安装位置,可自动更新,手动更新 一:引包:electron,electron- ...

  4. electron 利用 electron-builder实现自动更新

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是对应用文档的补充,这边刚开始用electron-forge 但没有相关的教程,放弃. 1.先学会用electron- ...

  5. Vue+Electron学习系列 (三) -- 自动更新

    Vue+Electron学习系列 ​​​​​​​1️⃣Vue+Electron学习系列 (一) -- 初识​​​​​​​ 2️⃣ Vue+Electron学习系列 (二) -- 打包发布 3️⃣ Vu ...

  6. 【Electron】酷家乐客户端开发实践分享 — 软件自动更新

    作者:钟离,酷家乐PC客户端负责人 原文地址:webfe.kujiale.com/electron-au- 酷家乐客户端:下载地址 www.kujiale.com/activity/13- 文章背景: ...

  7. 一招解决BS转CS模式:浏览终端开发-Electron集成打包、本地配置文件及自动更新

    将普通的网页转换为桌面应用并兼容现在的H5,基本的思路都是打包封装谷歌公司的开源版Chromium 使其充当与本地应用通讯的媒介: 成本比较低的是electron  CefShap(C#)  至于bl ...

  8. Electron应用实现自动更新

    1.自行创建Electron项目 2.安装electron-builder 打包工具 yarn add electron-builder 或者 npm install electron-builder ...

  9. 使用 electron-updater 自动更新应用

    前端工程师可以使用 Electron 非常方便的编写出 PC 端应用,而应用更新的方式也有很多,详细可见更新应用程序. 我的项目是基于 electron-vue 搭建的,构建打包生成安装包,则用的是 ...

最新文章

  1. LeetCode简单题之用栈操作构建数组
  2. PyTorch 笔记(19)— Tensor 用 GPU 加速
  3. 用python写数字_用python 写游戏之数字华容道
  4. python有哪些作用-Python都有哪些强大的功能
  5. uni-app开发微信小程序之获取当前地址
  6. ajax请求可以延时吗,延时校验AJAX请求
  7. C#操作Sqlite快速入门及相关工具收集(连接串管用)
  8. 【深入理解JVM】运行时数据区域:java虚拟机栈
  9. 2022年软件评测师考试大纲
  10. 导出DMP文件实现数据库备份、数据迁移流程
  11. 硅谷产品联盟合伙人:每一个伟大产品的背后
  12. 大数据是什么 有哪些价值
  13. MOSS入门介绍 和 概念介绍
  14. Tableau的维度、度量和连续、离散的区分
  15. 新手小白做短视频,一个月收益10000多,超过自己的主业收入
  16. java: 未报告的异常错误org.json.JSONException; 必须对其进行捕获或声明以便抛出
  17. <Notes>城市复杂环境的视觉定位与建图(报告人:上交邹丹平教授)
  18. 2022年危险化学品经营单位主要负责人及危险化学品经营单位主要负责人操作证考试
  19. AndroidWear官方文档总结03 - 连接手持设备与穿戴设备模拟器到开发环境
  20. 列表推导式-list comprehension

热门文章

  1. 一道Twitter编程面试题
  2. 物理实验-用拉伸法测金属丝的杨氏模量(仿真实验大厅)实验报告 重庆理工大学
  3. VUE cli打包后打开白屏解决办法
  4. 高层管理人的首要任务便是制定企业的发展战略
  5. 有什么好用的写论文软件?
  6. aws iam 使用keycloak集成实现saml认证登录aws控制台
  7. 乙肝两对半的五项指标
  8. 异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.解决办法
  9. Java中synchroized关键字的使用
  10. 如何完全删除Win7系统下用户配置文件