Skip to content

更新系统

概述

更新系统用于检查应用版本更新。支持强制更新、可选更新,可自动打开浏览器下载或由调用方自行处理。

运行模式

通过 txnet_set_update_mode 设置:

模式行为
默认模式0控制台交互,强制更新时自动打开浏览器并退出
自定义模式1仅触发回调,由调用方处理更新逻辑

默认模式行为

情况行为
服务端未配置版本打印错误,exit(1)
已是最新版本打印提示,继续执行
需要更新但无下载链接打印错误,exit(1)
强制更新打开浏览器,exit(0)
可选更新,用户选择更新打开浏览器,exit(0)
可选更新,用户跳过继续执行

函数

txnet_set_update_mode

cpp
void txnet_set_update_mode(int mode);

设置更新检查模式。

参数类型说明
modeint0=默认模式,1=自定义模式

txnet_set_update_callback

cpp
void txnet_set_update_callback(txnet_update_callback cb);

设置更新检查结果回调函数。

txnet_check_update

cpp
void txnet_check_update();

检查版本更新。此函数会阻塞直到检查完成。

前置条件

必须已登录成功(txnet_is_logged_in() == true

回调函数

txnet_update_callback

cpp
typedef void (*txnet_update_callback)(
    bool need_update,
    bool force_update,
    int latest_version,
    const char* version_name,
    const char* update_content,
    const char* download_url,
    const char* netdisk_url
);
参数类型说明
need_updatebool是否需要更新
force_updatebool是否为强制更新
latest_versionint最新版本号
version_nameconst char*最新版本名称
update_contentconst char*更新内容说明
download_urlconst char*直接下载链接
netdisk_urlconst char*网盘下载链接

示例

默认模式

cpp
#include "txnet.h"

void onUpdate(bool need, bool force, int ver, const char* name,
              const char* content, const char* url, const char* disk) {
    if (need) {
        printf("发现新版本: %s (v%d)\n", name, ver);
        printf("更新内容: %s\n", content);
    }
}

int main() {
    txnet_init(&config);
    txnet_connect();
    txnet_login();
    
    txnet_set_update_callback(onUpdate);
    txnet_check_update();
    
    printf("继续运行...\n");
    return 0;
}

自定义模式(UI 集成)

cpp
#include "txnet.h"

void onUpdate(bool need, bool force, int ver, const char* name,
              const char* content, const char* url, const char* disk) {
    if (!need) {
        showToast("已是最新版本");
        return;
    }
    
    if (force) {
        showUpdateDialog(name, content, url, true);
    } else {
        showUpdateDialog(name, content, url, false);
    }
}

void checkUpdate() {
    txnet_set_update_mode(1);
    txnet_set_update_callback(onUpdate);
    txnet_check_update();
}

TxNet 网络通信库文档