软件启动更新

**

更新时间:2022-10-26 (持续更新)

**

参考:
Qt实现软件自动更新的一种简单方法

示例:
在这里插入图片描述

需要更新后:下载最新的安装包

在这里插入图片描述

思路:当前程序+更新程序
程序运行前先执行以下流程判断是否更新
1.检查当前版本
2.查看服务器最新版本
3.比较版本,如果不为最新版则下载最新版软件到本地
更新:
外部运行更新程序,关闭当前程序

更新程序:
1.下载最新的软件包。
2.解压更新包,替换文件完成更新
3.运行程序--关闭更新程序

完成更新。

读取当前软件本地xml来显示版本号:
xml:

<UPDATE>
	<LATESTVERSION>V1.22.1010.0</LATESTVERSION>
	<Url>安装包地址</Url>
	<UPDATETIME>2022-10-10</UPDATETIME>
	<RELEASENOTE>1.完成界面开发</RELEASENOTE>

</UPDATE>

查看服务器最新版本:
获取数据库最新的版本信息和软件下载地址。
在这里插入图片描述

cpp:

void Widget::on_pushButton_clicked()
{
    //load local version  V1.22.1010.0
    QString localVersion = checkXmlVersion();
    //get latest version
    QString str = HttpRequest::getRequest("http://localhost:8800/checkLatestVersion/");
    qDebug()<<str;
    //解析返回
    QJsonParseError error;
    QJsonDocument document = QJsonDocument::fromJson(str.toUtf8(), &error);
    QString code,msg;
    if(document.isObject())
    {
        QVariantMap result = document.toVariant().toMap();
        code = result["code"].toString();
        msg = result["msg"].toString();
    }
    //"{\"msg\":\"2022-10-25|V1.22.1025.0|1.完善显示界面1.0版本发布|XX\",\"code\":\"0\"}"

    if(code == "0" && localVersion != msg.split("|").at(1))
    {
        QString warningStr =  "检测到新版本!\n版本号:" + msg.split("|").at(1) + "\n" + "更新时间:" + msg.split("|").at(0) + "\n" + "更新说明:" + msg.split("|").at(2);
        int ret = QMessageBox::warning(this, ("检查更新"), warningStr,("去下载"), ("不更新"));
        if(ret == 0)    //点击更新
        {
            qDebug()<<"download url:"<<msg.split("|").at(3);
        }
    }
    else
    {
        QMessageBox::information(this, ("检查更新"),("当前已经是最新版本"));
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值