electron 利用 electron-builder实现自动更新
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实现自动更新相关推荐
- 利用python和Tushare自动更新A股每日数据
利用python和Tushare自动更新A股每日数据 tushare ID :423004 所需接口 整体思路为: 1.利用stock_basic获取ts_code,获得沪深全部上市公司股票代码 2. ...
- python tkinter 表格_python学习笔记(Tkinter编程利用Treeview实现表格自动更新)
博主今天总结这段时间抽空写的一个GUI编程项目 功能是查看本地打印机队列,可选择指定队列重新打印 直接上图 UI设计包括3个区域左上方,右上方和下方列表区域 使用网格grid方法来分配位置 下面是界面 ...
- Excel VBA利用事件对图表自动更新
Private Sub Workbook_SheetActivate(ByVal sh As Object) Dim shrt As Worksheet Dim rg As Range Dim rgC ...
- 利用Github Actions部署自动更新PaddleOCR指定代码到指定仓库
目录 引言 需求描述 解决方法 采用Github Actions功能 具体代码 总结 参考资料 引言 首先说呢,我也不想重复造轮子, 但是无奈,网上博客看了一大圈,却始终没有找到自己需要的东西 需求描 ...
- 易语言 ftp控制html,【原创】利用FTP实现软件自动更新
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 internet .支持库 EThread .支持库 downlib .支持库 iext .子程序 版本比较 .局部变量 现行版本, ...
- android+后台自动更新+上架,Android增量自动更新
抽取的Android自动更新库,目的是几行代码引入更新功能,含服务端代码,欢迎Star,欢迎Fork,谢谢- 目录 功能介绍 [x] 支持全量更新apk,直接升级到最新版本 [x] 支持增量更新,只下 ...
- electron打包可选择安装位置,可自动更新
Electron打包调参软件(windows版) ----------------------------------可选安装位置,可自动更新,手动更新 一:引包:electron,electron- ...
- electron 自动更新 热跟新
electron 自动更新 热跟新 自动跟新之后不用重新安装 使用electron-upadta 自动跟新之后需要用户在重新安装一遍程序,用户体验不好,开发electron-hot-updata 插件 ...
- electron自动更新版本electron-updater
首先来看效果图: 打包electron生成新的exe安装包:npm run dist 使用simplehttpserver开启存放打包好的exe安装包与yml文件的本地服务(打包目录里有这两个文件) ...
最新文章
- Windows Azure Storage (25) Azure Append Blob
- Android Timer的使用
- java如何运行一个任务_如何每天从Java运行任务?
- java中的双与_java 双冒号是什么操作符?
- 前端处理带t的时间_适合家用的跑步机?阿迪达斯轻爵T-19i跑步机测评|adidas|商用机...
- Spring Boot 2.3.3 稳定版发布!修复了这18个Bug!!
- 苹果因芯片短缺优先生产iPhone 13 常规iPad平均交付时间超7周
- 十八年开发经验分享(四)问题解决篇(下)
- 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
- Javascript第五章为什么用firstChild获取table中最后一个节点会取到text或者tbody第十一课
- 开发基于MFC的应用程序
- MessageBox 用法合集
- 周爱民:架构的实战过程
- 计算机管理 合并分区,硬盘分区进行合并 硬盘分区后怎么合并
- 【技巧】EXCEL如何按行找出最大三个数并标记
- 计算机无法保存其他共享用户,Win7共享打印机出现 无法保存打印机设置 操作无法完成 错误0x000006d9解决方法...
- 使用Metasploit对MSSQL渗透测试步骤——学习笔记
- 环形队列数组展示(韩顺平)
- AW-Convlution:An Attention Module for Convolutional Neural Networks
- 在线学习Biopython教程与手册 中文版