2019独角兽企业重金招聘Python工程师标准>>>

这篇文章是对应用文档的补充,这边刚开始用electron-forge 但没有相关的教程,放弃。

1、先学会用electron-builder进行打包。

2、然后在package.json里面添加build内容

{"name": "ds","version": "1.0.0","description": "A minimal Electron application","main": "src/main.js","scripts": {"dist": "electron-builder -wm","start": "electron ."},  "build": {"appId": "com.dingshang.app","publish": [{"provider": "generic","url": "http://www.xxx.com/static/dist/"}],"win": {"target": ["nsis","zip"],"icon": "src/icon.png"}},"dependencies": {"electron-updater": "^2.21.4"}
}

3、在main.js中进行加入这个 网上的教程是import 但会提示报错。

const autoUpdater = require('electron-updater').autoUpdater
const ipcMain = require('electron').ipcMain
const uploadUrl='http://www.d-shang.com/static/dist/'
// 检测更新,在你想要检查更新的时候执行,renderer事件触发后的操作自行编写function updateHandle() {let message = {error: '检查更新出错',checking: '正在检查更新……',updateAva: '检测到新版本,正在下载……',updateNotAva: '现在使用的就是最新版本,不用更新',};const os = require('os');autoUpdater.setFeedURL(uploadUrl);autoUpdater.on('error', function (error) {console.log(error);sendUpdateMessage(message.error)});autoUpdater.on('checking-for-update', function () {console.log(message);sendUpdateMessage(message.checking)});autoUpdater.on('update-available', function (info) {console.log(message);sendUpdateMessage(message.updateAva)});autoUpdater.on('update-not-available', function (info) {sendUpdateMessage(message.updateNotAva)});// 更新下载进度事件autoUpdater.on('download-progress', function (progressObj) {mainWindow.webContents.send('downloadProgress', progressObj)})autoUpdater.on('update-downloaded', function (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) {ipcMain.on('isUpdateNow', (e, arg) => {console.log(arguments);console.log("开始更新");//some code here to handle eventautoUpdater.quitAndInstall();});mainWindow.webContents.send('isUpdateNow')});ipcMain.on("checkForUpdate",()=>{//执行自动更新检查autoUpdater.checkForUpdates();})
}// 通过main进程发送事件给renderer进程,提示更新信息
function sendUpdateMessage(text) {mainWindow.webContents.send('message', text)
}

4、还需要在main.js的createWindow()中调用方法

function createWindow () {//这个方法要调用updateHandle();
}

5、设置监听 index.html

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Hello World!</title></head><body><h1>Hello World!</h1>
自动更新</body></html><script src="./script/jquery-1.11.0.min.js"></script><script>
const ipcRenderer = require('electron').ipcRendereripcRenderer.send("checkForUpdate");ipcRenderer.on("message", (event, text) => {console.log(arguments);this.tips = text;});ipcRenderer.on("downloadProgress", (event, progressObj)=> {console.log(progressObj);this.downloadPercent = progressObj.percent || 0;});ipcRenderer.on("isUpdateNow", () => {ipcRenderer.send("isUpdateNow");});
</script>

至此,全部完成了,调试下npm start 看看行不行

引用文档

https://segmentfault.com/a/1190000012904543

转载于:https://my.oschina.net/u/554046/blog/1796217

electron 利用 electron-builder实现自动更新相关推荐

  1. 利用python和Tushare自动更新A股每日数据

    利用python和Tushare自动更新A股每日数据 tushare ID :423004 所需接口 整体思路为: 1.利用stock_basic获取ts_code,获得沪深全部上市公司股票代码 2. ...

  2. python tkinter 表格_python学习笔记(Tkinter编程利用Treeview实现表格自动更新)

    博主今天总结这段时间抽空写的一个GUI编程项目 功能是查看本地打印机队列,可选择指定队列重新打印 直接上图 UI设计包括3个区域左上方,右上方和下方列表区域 使用网格grid方法来分配位置 下面是界面 ...

  3. Excel VBA利用事件对图表自动更新

    Private Sub Workbook_SheetActivate(ByVal sh As Object) Dim shrt As Worksheet Dim rg As Range Dim rgC ...

  4. 利用Github Actions部署自动更新PaddleOCR指定代码到指定仓库

    目录 引言 需求描述 解决方法 采用Github Actions功能 具体代码 总结 参考资料 引言 首先说呢,我也不想重复造轮子, 但是无奈,网上博客看了一大圈,却始终没有找到自己需要的东西 需求描 ...

  5. 易语言 ftp控制html,【原创】利用FTP实现软件自动更新

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 internet .支持库 EThread .支持库 downlib .支持库 iext .子程序 版本比较 .局部变量 现行版本, ...

  6. android+后台自动更新+上架,Android增量自动更新

    抽取的Android自动更新库,目的是几行代码引入更新功能,含服务端代码,欢迎Star,欢迎Fork,谢谢- 目录 功能介绍 [x] 支持全量更新apk,直接升级到最新版本 [x] 支持增量更新,只下 ...

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

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

  8. electron 自动更新 热跟新

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

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

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

最新文章

  1. Windows Azure Storage (25) Azure Append Blob
  2. Android Timer的使用
  3. java如何运行一个任务_如何每天从Java运行任务?
  4. java中的双与_java 双冒号是什么操作符?
  5. 前端处理带t的时间_适合家用的跑步机?阿迪达斯轻爵T-19i跑步机测评|adidas|商用机...
  6. Spring Boot 2.3.3 稳定版发布!修复了这18个Bug!!
  7. 苹果因芯片短缺优先生产iPhone 13 常规iPad平均交付时间超7周
  8. 十八年开发经验分享(四)问题解决篇(下)
  9. 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
  10. Javascript第五章为什么用firstChild获取table中最后一个节点会取到text或者tbody第十一课
  11. 开发基于MFC的应用程序
  12. MessageBox 用法合集
  13. 周爱民:架构的实战过程
  14. 计算机管理 合并分区,硬盘分区进行合并 硬盘分区后怎么合并
  15. 【技巧】EXCEL如何按行找出最大三个数并标记
  16. 计算机无法保存其他共享用户,Win7共享打印机出现 无法保存打印机设置 操作无法完成 错误0x000006d9解决方法...
  17. 使用Metasploit对MSSQL渗透测试步骤——学习笔记
  18. 环形队列数组展示(韩顺平)
  19. AW-Convlution:An Attention Module for Convolutional Neural Networks
  20. 在线学习Biopython教程与手册 中文版

热门文章

  1. Effective C++ Item 30 inline里里外外
  2. JS打字效果的动态菜单代码分享
  3. Numerical Geometry of Image
  4. SubVersion和Subclipse的简单使用方法
  5. 微软WSUS服务器 3.0安装配置详解
  6. windows2003系统的iis不能下载exe文件问题的解决
  7. java 的类型转换方式
  8. li 在 UL 中居中均匀显示
  9. Oracle快速复制表
  10. 架构演进之「微服务架构」