feat(app): 新版 App 检查更新提示与设置页手动检查

- $A.eeuiAppCheckUpdate 在 Expo 壳中弹出「发现新版本」,iOS 跳 App Store、Android 浏览器下载 apk
- 设置「版本」右侧新增「检查更新」
- 更新 Expo 壳子模块、语言包(含 DooPush 遗漏的两条后端文案)与 ai-kb
This commit is contained in:
kuaifan 2026-10-19 13:15:20 +00:00
parent ef4bfd6ca4
commit bf1c9b7751
29 changed files with 142 additions and 34 deletions

View File

@ -2849,3 +2849,6 @@ App ID
App Secret
服务地址
新版 App 使用 DooPush,旧版 App 使用友盟,两者可同时开启。
DooTask 新版本 (*) 已发布,建议更新以获得更好的使用体验。
已是最新版本
检查更新失败,请稍后再试

View File

@ -41026,5 +41026,65 @@
"fr": "Les nouvelles versions de l’application utilisent DooPush et les anciennes Umeng. Les deux peuvent être activés simultanément.",
"id": "Versi aplikasi baru menggunakan DooPush, sedangkan versi lama menggunakan Umeng. Keduanya dapat diaktifkan bersamaan.",
"ru": "Новые версии приложения используют DooPush, а старые — Umeng. Оба сервиса можно включить одновременно."
},
{
"key": "DooTask 新版本 (%T1) 已发布,建议更新以获得更好的使用体验。",
"zh": "",
"zh-CHT": "DooTask 新版本 (%T1) 已發布,建議更新以獲得更好的使用體驗。",
"en": "DooTask (%T1) is now available. Update for a better experience.",
"ko": "DooTask 새 버전 (%T1)이(가) 출시되었습니다. 더 나은 사용 경험을 위해 업데이트하세요.",
"ja": "DooTask の新しいバージョン (%T1) がリリースされました。より快適にご利用いただくため、更新をおすすめします。",
"de": "DooTask (%T1) ist verfügbar. Aktualisiere für ein besseres Nutzungserlebnis.",
"fr": "DooTask (%T1) est disponible. Mettez à jour pour une meilleure expérience.",
"id": "DooTask versi baru (%T1) telah dirilis. Perbarui untuk pengalaman yang lebih baik.",
"ru": "Доступна новая версия DooTask (%T1). Обновите приложение для более удобной работы."
},
{
"key": "已是最新版本",
"zh": "",
"zh-CHT": "已是最新版本",
"en": "You're on the latest version",
"ko": "최신 버전입니다",
"ja": "最新バージョンです",
"de": "Du verwendest die neueste Version",
"fr": "Vous utilisez la dernière version",
"id": "Anda sudah menggunakan versi terbaru",
"ru": "У вас последняя версия"
},
{
"key": "检查更新失败,请稍后再试",
"zh": "",
"zh-CHT": "檢查更新失敗,請稍後再試",
"en": "Failed to check for updates. Please try again later.",
"ko": "업데이트 확인에 실패했습니다. 잠시 후 다시 시도하세요.",
"ja": "更新の確認に失敗しました。しばらくしてからもう一度お試しください。",
"de": "Suche nach Updates fehlgeschlagen. Bitte versuche es später erneut.",
"fr": "Impossible de rechercher des mises à jour. Veuillez réessayer plus tard.",
"id": "Gagal memeriksa pembaruan. Silakan coba lagi nanti.",
"ru": "Не удалось проверить обновления. Повторите попытку позже."
},
{
"key": "推送设备ID必须为1至64位数字",
"zh": "",
"zh-CHT": "推送裝置ID必須為1至64位數字",
"en": "Push device ID must be 1 to 64 digits",
"ko": "푸시 기기 ID는 1~64자리 숫자여야 합니다",
"ja": "プッシュデバイスIDは1〜64桁の数字である必要があります",
"de": "Die Push-Geräte-ID muss aus 1 bis 64 Ziffern bestehen",
"fr": "L'ID de l'appareil push doit comporter de 1 à 64 chiffres",
"id": "ID perangkat push harus berupa 1 hingga 64 digit angka",
"ru": "ID устройства для push-уведомлений должен содержать от 1 до 64 цифр"
},
{
"key": "推送厂商错误",
"zh": "",
"zh-CHT": "推送廠商錯誤",
"en": "Invalid push vendor",
"ko": "푸시 제조사가 올바르지 않습니다",
"ja": "プッシュベンダーが正しくありません",
"de": "Ungültiger Push-Anbieter",
"fr": "Fournisseur push invalide",
"id": "Vendor push tidak valid",
"ru": "Неверный поставщик push-уведомлений"
}
]
]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -12,14 +12,16 @@ aliases:
- 新版本 App
- 怎么升级 App
- 移动端有新版本
- 检查更新
- 发现新版本
related_tools: []
related_pages: []
prerequisites: []
negative:
- App 内通常不直接下载安装包,只引导用户去商店
- App 内不直接下载安装包:iOS 跳 App Store,Android 用浏览器下载 apk
- 自部署版本可能强制要求最低 App 版本,过旧版本会被服务端拒绝
- iOS 不支持侧载,只能走 App Store / TestFlight / 企业证书
last_verified: v1.7.90
last_verified: v1.9.66
---
# 升级移动端 App
@ -58,11 +60,17 @@ last_verified: v1.7.90
2. 直接安装新版会自动覆盖旧版(版本号高于已装版本)
3. 安装权限不足请到系统设置允许该浏览器 / 文件管理器作为「未知来源」
## App 内提示
登录后若服务端检测到客户端版本过低,可能弹出「检测到新版本,请升级」提示。点提示会引导到对应商店或下载链接。
## App 内检查更新
新版 App 每天回到前台时自动检查一次,有新版本时弹出「发现新版本」:
- 「立即更新」:iOS 跳转 App Store 的 DooTask 页面;Android 用系统浏览器打开官方 apk 下载地址,下载完点开安装
- 「以后再说」:关闭提示,第二天回到前台会再次提醒
- 版本来源:iOS 查 App Store 上架版本,Android 查官网(download.dootask.com)最新安装包;只在官方版本高于本机版本时提示,与连接的服务器无关
- 网络失败时不提示
手动检查:设置 →「版本」一行右侧点「检查更新」,已是最新会提示「已是最新版本」,有新版本则弹出同样的提示。
## 看当前版本
- 我的 → 「关于」/「设置」→「版本号」
- 设置 →「版本」(格式:版本号 (构建号)),点击可查看服务器与客户端版本
- iOS 也可在「设置 → 通用 → iPhone 储存空间 → DooTask」看版本
## 升级后数据
@ -72,5 +80,6 @@ last_verified: v1.7.90
## 不支持
- 不支持「App 内一键下载新安装包」(走系统商店或浏览器)
- 不支持跳过某个版本的提示,也没有强制更新
- iOS 不支持任何形式的侧载
- 没有统一的 Android 更新流程:各厂商商店流程不同,以各自商店为准

View File

@ -18,7 +18,7 @@ prerequisites: []
negative:
- 个人设置没有移动端 Tabbar 一级入口,需先进「我的」再进设置
- 未登录用户没有「个人设置」入口
last_verified: v1.9.36
last_verified: v1.9.66
---
# 个人设置入口
@ -42,7 +42,7 @@ last_verified: v1.9.36
- 键盘设置(仅 Electron / 移动端)→ [[user-settings.shortcut.concept]]
- 系统设置 / License Key(仅系统管理员可见)
- 系统更新(仅系统管理员可见,有系统新版本时显示新版本号)→ [[system-update.online-update.howto]]
- 更新日志(桌面端有新版本时显示为「更新客户端」,点击打开客户端更新弹窗) / 版本 / 登录设备 / 清除缓存 / 退出登录
- 更新日志(桌面端有新版本时显示为「更新客户端」,点击打开客户端更新弹窗) / 版本(新版移动端 App 右侧有「检查更新」,见 [[mobile-client.update.howto]]) / 登录设备 / 清除缓存 / 退出登录
## 权限要求

@ -1 +1 @@
Subproject commit fcce75afe46512e9a059f474644c73dd5323692e
Subproject commit 84b9aeb38fef91b69cfe22d2956bc175745848be

View File

@ -147,9 +147,31 @@ import {languageName} from "../i18n";
});
},
// 检查更新
eeuiAppCheckUpdate() {
$A.eeuiModule()?.checkUpdate();
// 是否新版 App 壳(Expo,注入 window.__eeuiBridge)
eeuiAppIsExpo() {
return !!window.__eeuiBridge;
},
// 检查更新(manual:手动检查,提示已是最新/检查失败)
eeuiAppCheckUpdate(manual = false) {
if (!$A.eeuiAppIsExpo()) {
$A.eeuiModule()?.checkUpdate();
return;
}
$A.eeuiModule()?.checkUpdate(({status, version, url} = {}) => {
if (status === 'update') {
$A.modalConfirm({
language: false,
title: $A.L('发现新版本'),
content: $A.L('DooTask 新版本 (*) 已发布,建议更新以获得更好的使用体验。', version),
cancelText: $A.L('以后再说'),
okText: $A.L('立即更新'),
onOk: () => $A.eeuiAppOpenWeb(url),
});
} else if (manual) {
status === 'latest' ? $A.messageSuccess('已是最新版本') : $A.messageError('检查更新失败,请稍后再试');
}
});
},
// 获取主题名称 light|dark

View File

@ -31,6 +31,7 @@
</template>
<template v-else-if="item.path === 'version-show'">
<AutoTip>{{$L(item.name)}}: {{clientVersion}}</AutoTip>
<span v-if="canCheckUpdate" class="check-update" @click.stop="onCheckUpdate">{{$L('检查更新')}}</span>
</template>
<span v-else>{{$L(item.name)}}</span>
</li>
@ -62,6 +63,7 @@ export default {
deviceCount: 0,
serverVersion: null,
clientVersion: window.systemInfo.version,
canCheckUpdate: $A.eeuiAppIsExpo(),
}
},
@ -243,6 +245,10 @@ export default {
})
},
onCheckUpdate() {
$A.eeuiAppCheckUpdate(true);
},
getVersion() {
this.versionTimer && clearTimeout(this.versionTimer)
this.versionTimer = setTimeout(() => {

View File

@ -91,6 +91,12 @@
opacity: 0.8;
}
.check-update {
flex-shrink: 0;
margin-left: 12px;
color: $primary-color;
}
.ivu-badge {
transform: scale(0.8);
transform-origin: right center;

View File

@ -615,8 +615,10 @@ interface DooTaskGlobal {
eeuiAppHideWebviewSnapshot(): void;
/** 扫码(成功时回调扫码文本) */
eeuiAppScan(callback: (text: string) => void): void;
/** 检查更新 */
eeuiAppCheckUpdate(): void;
/** 是否新版 App 壳(Expo) */
eeuiAppIsExpo(): boolean;
/** 检查更新(manual:手动检查,提示已是最新/检查失败) */
eeuiAppCheckUpdate(manual?: boolean): void;
/** 获取主题名称 light|dark */
eeuiAppGetThemeName(): string | undefined;
/** 判断软键盘是否可见 */