接口文档 · 在线升级(教师端)
满足根
CLAUDE.md#3/#5。对接第三方版本平台见../版本管理接口对接文档.md。 Base URL:devhttp://localhost:8000;生产https://teacher-api.weizhiqingtu.com。日志分类:在线升级。
检查更新 GET /api/version/check(公开口)
后端按 platform→包名 映射,代理调第三方公开口 GET {VERSION_API_BASE}/app/version?app=<pkg>,归一化返回。单一来源便于换平台、记日志、避免前端 CORS。第三方不可用或应用未注册时优雅降级为 found:false。
Query:
| 参数 | 必填 | 取值 | 映射包名(默认) |
|---|---|---|---|
platform |
是 | android |
com.zhihuijiaoyu.teacher |
mac |
com.zhihuijiaoyu.teacher.mac |
||
win |
com.zhihuijiaoyu.teacher.win |
响应 data(UpdateInfo):
{
"found": true,
"platform": "android",
"packageName": "com.zhihuijiaoyu.teacher",
"versionName": "0.2.0",
"versionCode": 200,
"downloadUrl": "https://aihtml.qimingdaren.com/.../app-apk/xxx.apk",
"fileSize": 60817408,
"changelog": "修复若干问题",
"minSupportedCode": null,
"forceUpdate": false
}
无更新 / 未注册应用:{ "found": false, "platform": "android", "packageName": "..." }。
curl "http://localhost:8000/api/version/check?platform=android"
错误码:422 platform 非 android/mac/win。
客户端逻辑
- 桌面(Electron):ProfilePopover →「检查更新」→
window.desktop.checkUpdate(apiBase)(主进程比对app.getVersion()semver)→ 有更新弹UpdateDialog(更新日志 + 进度)→ 下载 dmg/exe 到临时目录 →shell.openPath打开安装。forceUpdate时不可关闭弹窗。 - 移动(Expo):MeScreen →「检查更新」→
checkUpdate('android')比对app.jsonversion → 有更新Alert显示更新日志 → 确认用Linking.openURL(downloadUrl)系统浏览器下载 APK(用户点开安装)。forceUpdate时无「稍后」。 - Web:不涉及升级(始终最新),不展示入口。
发版(写入第三方平台)
见 ../构建打包指南.md「发版到版本平台」与 scripts/publish-version.mjs(需平台账号,凭据走 env)。