**
更新时间:2022-10-26 (持续更新)
**
示例:
需要更新后:下载最新的安装包
思路:当前程序+更新程序
程序运行前先执行以下流程判断是否更新
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, ("检查更新"),("当前已经是最新版本"));
}
}