资讯专栏INFORMATION COLUMN

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

canger / 2544人阅读

摘要:事件当发现一个可用更新的时候触发,更新包下载会自动开始。在上只有是有效的。方法列表对象有以下的方法设置检查更新的,并且初始化自动更新。这个一旦设置就无法更改。向服务端查询现在是否有可用的更新。在下载完成后,重启当前的应用并且安装更新。

Electron打包调参软件(windows版)

----------------------------------可选安装位置,可自动更新,手动更新

一:引包:electron,electron-builder,electron-updater**
npm i electron --save-dev
npm i electron-builder --save-dev
npm i electron-updater --save
注:每个包都要放在相应的位置;

Package.json配置:

1.字段:”build”

参数:

{
    "publish": [
        {
            "provider": "generic",
            "url": "http://localhost:8899/"   //存放软件版本的地址
        }
    ],
    "directories": {
        "output": "release",      //打包后文件所在位置
        "app": "./"    //开始位置
    },
    "win": {    //windows下安装软件配置参数
        "target": [
            "nsis",  //打包为nsis安装文件
            "zip"   //打包为安装文件zip
        ]
    },
    "nsis": {   //nsis配置参数
        "oneClick": false,    //可单击打开
        "allowToChangeInstallationDirectory": true,    //允许用户选择安装位置
        "perMachine": true
    }
};
2.字段:”script”

参数:

{
    "dist": "electron-builder"
}
3.字段:”version”

参数:

1.0.0   //保存版本信息,通过该字段完成更新功能(必须字段)

二:打包:npm run dist

等待打包,打包完成之后生成的文件会放在output字段设置的位置;

这是打包完成后生成的文件,其中latest.yml是electron-builder自动生成的版本管理文件, 该文件保存有版本信息;

箭头指向的文件为可安装软件,即打包后的目标文件;

版本文件:

可以看到,现在打包的版本为2.0.0,想要改变版本只要更改package.json的version字段,重新打包即可;

点击该文件可进行安装:

三:更新 确认已经安装了electron-updater 1.需要在electron主进程中引入electron-updater;

const autoUpdater = require("electron-updater").autoUpdater; //引入 autoUpdater

2.以下代码需要在完成创建BrowserWindow后执行;

autoUpdater.setFeedURL("http://localhost:8899/"); //设置检测更新地址(参数为 软件所在位置)

3.autoUpdater.checkForUpdates() //检测是否有新版本,如果有新版本则自动下载; 4.autoUpdater.on("update-downloaded", function () { //下载完成后执行 quitAndInstall
autoUpdater.quitAndInstall();  //关闭软件并安装新版本

});

5.安装程序后,每次打开都会执行上述代码,每次都会检测是否有新版本; 6.最后一步,打包一个新版本的软件,把exe文件和latest.yml一起放在autoUpdater.setFeedURL()设置的路径下;

打开软件后检测到有新版本时就会自动下载安装:

以上为软件自动更新,若要软件手动更新还需要electron主进程和渲染进程之间的通讯,通过用户操作触发更新检测,下载更新事件;

以下是autoUpdater手动更新时可能用到的方法和事件; 事件列表
autoUpdater 对象会触发以下的事件:
    事件:"error"
        返回:
        error Error
        当更新发生错误的时候触发。
    事件:"checking-for-update"
        当开始检查更新的时候触发。
    事件:"update-available"
        当发现一个可用更新的时候触发,更新包下载会自动开始。
    事件:"update-not-available"
        当没有可用更新的时候触发。
    事件:"update-downloaded"
        返回:
            event Event
            releaseNotes String - 新版本更新公告
            releaseName String - 新的版本号
            releaseDate Date - 新版本发布的日期
            updateURL String - 更新地址
        在更新下载完成的时候触发。
        在 Windows 上只有 releaseName 是有效的。
方法列表
    autoUpdater 对象有以下的方法:
        autoUpdater.setFeedURL(url)
            url String
            设置检查更新的 url,并且初始化自动更新。这个 url 一旦设置就无法更改。
    autoUpdater.checkForUpdates()
        向服务端查询现在是否有可用的更新。在调用这个方法之前,必须要先调用 setFeedURL。
    autoUpdater.quitAndInstall()
        在下载完成后,重启当前的应用并且安装更新。这个方法应该仅在 update-downloaded 事件触发后被调用。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95236.html

相关文章

  • 如何搭建Electron开发环境

    摘要:原文发表于如何搭建开发环境这个项目结构是我在编写基于和的七牛文件上传总结出来的本文主要介绍如何从零开始搭建高效的开发环境主要内容如下通过合理的目录划分来组织代码使用简化开发如何在渲染进程开发时使用热更新如何在主进程开发时使用自动重启如何在主 原文发表于 https://lleohao.github.io/2017/09/02/如何搭建Electron开发环境/ 这个项目结构是我在编写...

    TwIStOy 评论0 收藏0
  • Electron 打造 Win/Mac 应用,从「代码」到下载的「安装包」,能比你想得麻烦一

    摘要:三配置环节目的一是为之后的环节初始化工作流参数,二是准备好应用文件夹内容即要打包的目标文件夹做的事解析命令行参数,初始化工作参数,填充配置文件,把配置文件和相关依赖文件导入到文件夹内合适的 首发于酷家乐前端博客,作者@摘星(segmentfault @StinsonZhao) 我们能从很多地方学习到怎么起一个 Electron 项目,有些还会介绍怎么打包或构建你的代码,但距离「真正地...

    LdhAndroid 评论0 收藏0
  • XCel 项目总结 - Electron 与 Vue 的性能优化

    摘要:而这里的单元格信息是唯一的,所以直接通过为一个空对象赋值即可。和相关的知识和技巧高亮的列单元格采用展示。在中,被选中的单元格会高亮相应的行和列,以提醒用户。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一个 Excel 数据清洗工具,其通过可视化的方式让用户轻松地对 Excel 数据进行筛选。 XCEL...

    XUI 评论0 收藏0
  • electron打包electron-packager及electron-builder两种方式实

    摘要:前言本文主要介绍如何通过及两种方式,将已有的应用打包成格式和可执行文件。导致了在打包的过程中非常慢。由于是初次接触,如读者在文中发现错误,请及时指正。 前言 showImg(https://segmentfault.com/img/bV6zNn?w=1319&h=594); 本文主要介绍如何通过electron-packager及electron-builder两种方式,将已有的ele...

    KaltZK 评论0 收藏0
  • Electron 打包Mac安装包代码签名问题解决方案

    摘要:最近一直在做应用的打包,集成版本的自动更新时出现了问题。针对上述上打包无法进行正确代码签名的问题,通过设置环境变量和使用进行代码签名可以解决。 最近一直在做electron应用的打包,集成mac版本的自动更新时出现了问题。具体打包流程请参考:Electron 桌面应用打包(npm run build)简述(windows + mac)Electron应用集成自动更新功能可参考:Elec...

    taoszu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<