首页 > 其他分享 >electron自动更新

electron自动更新

时间:2023-08-28 12:00:35浏览次数:39  
标签:function sendUpdateMessage 更新 autoUpdater electron send 自动更新 error

electron可通过electron-updater实现客户端自动更新

mian.js

// 检测更新,在你想要检查更新的时候执行,renderer事件触发后的操作自行编写
function updateHandle() {
    // let message = {
    //     error: '检查更新出错',
    //     checking: '正在检查更新……',
    //     updateAva: '检测到新版本,正在下载……',
    //     updateNotAva: '现在使用的就是最新版本,不用更新',
    // };
    const os = require('os');

    autoUpdater.setFeedURL(updateUrl);
    autoUpdater.on('error', function (error) {
        //sendUpdateMessage(message.error)
        console.log(error);
        sendUpdateMessage("error", error)
    });
    autoUpdater.on('checking-for-update', function () {
        //sendUpdateMessage(message.checking)
        sendUpdateMessage("checking")
    });
    autoUpdater.on('update-available', function (info) {
        //sendUpdateMessage(message.updateAva)
        sendUpdateMessage("updateAva")
    });
    autoUpdater.on('update-not-available', function (info) {
        sendUpdateMessage("updateNotAva")
        //sendUpdateMessage(message.updateNotAva)
    });

    // 更新下载进度事件
    autoUpdater.on('download-progress', function (progressObj) {
        lodingWindow.webContents.send('downloadProgress', progressObj)
    })
    autoUpdater.on('update-downloaded', function (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) {
        // ipcMain.on('isUpdateNow', (e, arg)=> {
        //     console.log(arg);
        //     console.log("开始更新");
        //     sendUpdateMessage("开始更新")
        //     //some code here to handle event
        //     autoUpdater.quitAndInstall();
        // });
        sendUpdateMessage("downloaded");
        autoUpdater.quitAndInstall();

        //lodingWindow.webContents.send('isUpdateNow')
    });

    ipcMain.on("checkForUpdate", () => {
        //执行自动更新检查
        if (NODE_ENV !== "development") { //开发环境不检查更新
            autoUpdater.checkForUpdates();
        }
    })
}

// 通过main进程发送事件给renderer进程,提示更新信息
function sendUpdateMessage(type, e) {
    if (!lodingWindow.isDestroyed()) {
        lodingWindow.webContents.send('updateMessage', type, e)
    }
}

  

preload.js

window.addEventListener('DOMContentLoaded', () => {
  //加载完成检查更新
  ipcRenderer.send("checkForUpdate");
})
//桥接网页内容
contextBridge.exposeInMainWorld('winApi', {
  //程序更新信息
  updateMessage: (callback) => ipcRenderer.on("updateMessage", callback),
  //下载进度
  downloadProgress: (callback) => ipcRenderer.on("downloadProgress", callback),
  //立即更新
  isUpdateNow: () => ipcRenderer.on("isUpdateNow", () => {
    ipcRenderer.send("isUpdateNow");
  })
});

  

 

参考链接

https://www.electronjs.org/zh/docs/latest/tutorial/tutorial-publishing-updating

https://blog.csdn.net/AK852369/article/details/122123433

标签:function,sendUpdateMessage,更新,autoUpdater,electron,send,自动更新,error
From: https://www.cnblogs.com/wafulo/p/17661948.html

相关文章

  • electron如何与web对接
    mian.js //创建主窗体functioncreateWindow(options){//Createthebrowserwindow.mainWindow=newBrowserWindow({modal:true,fullscreen:false,autoHideMenuBar:true,titleBarStyle:"hidden",......
  • IM跨平台技术学习(八):新QQ桌面版为何选择Electron作为跨端框架
    本文由QQ技术团队王辉、吴浩、陈俊文分享,编辑Tina整理,本文收录时有内容修订和排版优化。1、引言在瞬息万变的互联网行业中,年过二十四的即时通讯IM应用QQ堪称超长寿的产品,见证了中国互联网崛起的完整历程。然而,如今这个元老级产品经历了一次从内到外彻底的重构。在这次重构......
  • Electron,VUEJS3,Vite,TypesSript 开发环境配置
    Electron,VUEJS3,Vite,TypesSript开发环境配置项目早期是vue3+vite开发的,后期由于运营需求,要修改为Win安装包。方案还是比较多的:1.WPF-Webview由于目前只需要兼容win,所以可以选择WPF,但WPF需要WebView的,还需要本地架设服务。整体部署比较复杂以及需要熟悉C#与WPF相关开发。2.......
  • AWS 提示证书签名过期无法自动更新
    如果域名没有通过验证的话,证书的过去是没有办法自动更新的。验证的方式也非常简单,通过下面的配置,把CNAME添加到你的域名上面,AWS就可会自动完成验证了。  当添加完成后,AWS验证需要的时间大致在30分钟到1个小时的样子。 https://www.ossez.com/t/aws/14550......
  • win10关闭自动更新
    一、禁用WindowsUpdate服务 1、同时按下键盘Win+R,打开运行对话框,然后输入命令services.msc,点击下方的“确定”打开服务,如下图所示。2、找到WindowsUpdate这一项,并双击打开,如图所示。3、双击打开它,点击“停止”,把启动类型选为“禁用”,最后点击应用,如下图。4、接......
  • 我的第一个electron
    安装步骤参考:https://www.electronjs.org/zh/docs/latest/tutorial/quick-start 拉取镜像关于拉取  electronmodule镜像遇到的问题失败的解决方案(对于别人来说可能好使)https://blog.csdn.net/Akua_/article/details/132102805我在我的  C:\Windows\System......
  • #yyds干货盘点#electron-egg: 当代桌面开发框架
    当前技术社区中出现了各种下一代技术或框架,却很少有当代可以用的,于是electron-egg就出现了。当前桌面软件技术有哪些?语言技术优点缺点C#wpf专业的桌面软件技术,功能强大学习成本高Javaswing/javaFx跨平台和语言流行GUI库少,界面不美观C++Qt跨平台,功能和类库丰富学习成本高Swift无非跨......
  • 关于Electron版本和NodeJS版本的关系
    关于Electron的介绍,可以查看官方文档Electron官方文档使用Electron进行开发时,本地必须安装Node运行环境(官方推荐安装长期支持(LTS)的版本)本地安装的Node的版本,和Electron程序运行所需要的版本没有关系。例如:使用Electron14.0.0版进行开发时,运行所需要的Node版本是14.17.0,这时候......
  • 解决 electron-forge 打包的 setup.exe 在安装动画未结束前就开了程序的主界面问题
    问题描述:electron-forge打包的setup.exe在安装动画未结束前就开了程序的主界面问题。问题演示图片:修复后的演示图片:原因这种setup.exe被称为Squirrel.Windows为什么安装动画未结束就启动了程序,原因在下面的文档里,这里是electron-forge相关文档:Handlingstartup......
  • FL Studio发布21.1新版!新增Hyper Chorus插件及自动更新功能
    很高兴地宣布在去年12月发布重大版本更新后,FLStudio在2023年8月正式更新到21.1版。本次更新虽然只是维护性质,但我们还是为大家带来了一些全新的功能,包括通过钢琴卷中的音阶捕捉和自定义音符工具,引入更快、更有创意的音符编辑。彩色波形,更好地管理采样。极致的合唱插件"HyperChor......