feat: update app refresh entry and release metadata
This commit is contained in:
parent
b29e6a67f8
commit
81d4c17ae7
@ -1,5 +1,23 @@
|
||||
# App 更新说明
|
||||
|
||||
# 1.0.10
|
||||
- 手机 App 左上角菜单新增“刷新页面”入口(仅 App 端显示)
|
||||
- 加载界面(正在连接服务器)新增“刷新页面”按钮
|
||||
- 继续优化 App 内更新下载链路稳定性
|
||||
|
||||
# 1.0.9-test1
|
||||
- 测试版本:验证 App 内下载更新链路(DownloadManager)是否在不同浏览器环境下稳定工作
|
||||
|
||||
# 1.0.9
|
||||
- 修复 App 内点击“更新”后依赖外部浏览器下载导致部分机型失败的问题
|
||||
- 新增 Android JS Bridge 下载通道:优先使用系统 DownloadManager 直接下载 APK
|
||||
- 前端下载逻辑增加桥接优先与浏览器回退,提升下载成功率
|
||||
|
||||
# 1.0.8
|
||||
- 同步最新对话压缩体验:压缩中状态提示更稳定,压缩完成后反馈更清晰
|
||||
- 优化压缩后会话切换与列表刷新表现,减少需要手动刷新的情况
|
||||
- 修复电脑端摘要行与正式输出内容的对齐问题
|
||||
|
||||
# 1.0.7
|
||||
- 应用图标替换为新的机器人插画 PNG 版本
|
||||
|
||||
|
||||
@ -16,8 +16,8 @@ android {
|
||||
applicationId = "com.cyjai.agent"
|
||||
minSdk = 24
|
||||
targetSdk = 35
|
||||
versionCode = 8
|
||||
versionName = "1.0.7"
|
||||
versionCode = 12
|
||||
versionName = "1.0.10"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
@ -5,10 +5,10 @@
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/ic_launcher_photo"
|
||||
android:icon="@drawable/ic_launcher_photo_v2"
|
||||
android:label="@string/app_name"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:roundIcon="@drawable/ic_launcher_photo"
|
||||
android:roundIcon="@drawable/ic_launcher_photo_v2"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.AgentWebView"
|
||||
android:usesCleartextTraffic="false">
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
1
static/icons/refresh-cw.svg
Normal file
1
static/icons/refresh-cw.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="opacity:1;"><path d="M3 12a9 9 0 0 1 9-9a9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5m5 4a9 9 0 0 1-9 9a9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></svg>
|
||||
|
After Width: | Height: | Size: 355 B |
@ -33,6 +33,9 @@
|
||||
<div class="loading-copy">
|
||||
<h2>加载中...</h2>
|
||||
<p>正在连接服务器,请稍候</p>
|
||||
<button type="button" class="loading-refresh-btn" @click="refreshCurrentPage">
|
||||
刷新页面
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -409,7 +412,7 @@
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="dropdown-item mobile-menu-item"
|
||||
class="dropdown-item mobile-menu-item mobile-menu-item--personal"
|
||||
aria-label="个人空间"
|
||||
@click="handleMobilePersonalClick"
|
||||
>
|
||||
@ -425,6 +428,16 @@
|
||||
<img class="mobile-menu-icon" :src="mobileMenuIcons.newChat" alt="" aria-hidden="true" />
|
||||
<div class="item-label">新建对话</div>
|
||||
</button>
|
||||
<button
|
||||
v-if="isAppShell"
|
||||
type="button"
|
||||
class="dropdown-item mobile-menu-item mobile-menu-item--refresh"
|
||||
aria-label="刷新页面"
|
||||
@click="handleMobileRefreshClick"
|
||||
>
|
||||
<img class="mobile-menu-icon" :src="mobileMenuIcons.refresh" alt="" aria-hidden="true" />
|
||||
<div class="item-label">刷新页面</div>
|
||||
</button>
|
||||
</div>
|
||||
</transition>
|
||||
<transition name="header-menu">
|
||||
@ -535,10 +548,14 @@ import VirtualMonitorSurface from './components/chat/VirtualMonitorSurface.vue';
|
||||
import VideoPicker from './components/overlay/VideoPicker.vue';
|
||||
|
||||
const mobilePanelIcon = new URL('../icons/align-left.svg', import.meta.url).href;
|
||||
const isAppShell =
|
||||
typeof window !== 'undefined' &&
|
||||
(new URLSearchParams(window.location.search).has('app_shell') || Boolean((window as any)?.AndroidThemeBridge));
|
||||
const mobileMenuIcons = {
|
||||
workspace: new URL('../icons/folder.svg', import.meta.url).href,
|
||||
personal: new URL('../icons/user.svg', import.meta.url).href,
|
||||
newChat: new URL('../icons/pencil.svg', import.meta.url).href
|
||||
newChat: new URL('../icons/pencil.svg', import.meta.url).href,
|
||||
refresh: new URL('../icons/refresh-cw.svg', import.meta.url).href
|
||||
};
|
||||
|
||||
defineOptions(appOptions);
|
||||
|
||||
@ -118,6 +118,18 @@ export const uiMethods = {
|
||||
this.uiSetMobileOverlayMenuOpen(false);
|
||||
},
|
||||
|
||||
refreshCurrentPage() {
|
||||
if (typeof window === 'undefined') {
|
||||
return;
|
||||
}
|
||||
window.location.reload();
|
||||
},
|
||||
|
||||
handleMobileRefreshClick() {
|
||||
this.uiSetMobileOverlayMenuOpen(false);
|
||||
this.refreshCurrentPage();
|
||||
},
|
||||
|
||||
closeMobileOverlay() {
|
||||
if (!this.activeMobileOverlay) {
|
||||
this.uiCloseMobileOverlay();
|
||||
|
||||
@ -1101,8 +1101,9 @@ if (typeof window !== 'undefined') {
|
||||
const bridge = (window as any)?.AndroidThemeBridge;
|
||||
const bridgeVcRaw = bridge && typeof bridge.getAppVersionCode === 'function' ? String(bridge.getAppVersionCode() || '') : '';
|
||||
const bridgeVnRaw = bridge && typeof bridge.getAppVersionName === 'function' ? String(bridge.getAppVersionName() || '') : '';
|
||||
const finalVcRaw = vcRaw || bridgeVcRaw;
|
||||
const finalVnRaw = vnRaw || bridgeVnRaw;
|
||||
// App 端优先使用 Bridge 实时版本,避免 WebView 恢复旧 URL 参数导致显示过期版本号
|
||||
const finalVcRaw = bridgeVcRaw || vcRaw;
|
||||
const finalVnRaw = bridgeVnRaw || vnRaw;
|
||||
appCurrentVersionCode.value = /^\d+$/.test(finalVcRaw) ? Number(finalVcRaw) : null;
|
||||
appCurrentVersionName.value = finalVnRaw || '';
|
||||
}
|
||||
|
||||
@ -1575,7 +1575,7 @@
|
||||
}
|
||||
|
||||
/* 个人空间图标稍大一点 */
|
||||
.mobile-menu-item:nth-child(3) img.mobile-menu-icon {
|
||||
.mobile-menu-item--personal img.mobile-menu-icon {
|
||||
width: 26px !important;
|
||||
height: 26px !important;
|
||||
}
|
||||
@ -2473,6 +2473,23 @@
|
||||
color: var(--claude-text-secondary);
|
||||
}
|
||||
|
||||
.loading-refresh-btn {
|
||||
margin-top: 14px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border-radius: 10px;
|
||||
background: var(--claude-panel);
|
||||
color: var(--claude-text);
|
||||
padding: 8px 14px;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
transition: transform 0.18s ease, box-shadow 0.18s ease;
|
||||
}
|
||||
|
||||
.loading-refresh-btn:hover {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 8px 20px rgba(61, 57, 41, 0.14);
|
||||
}
|
||||
|
||||
.boxes {
|
||||
--size: 34px;
|
||||
--duration: 900ms;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user