|
@@ -8374,3 +8374,19 @@ URL 不会重复显示:`chat.service.ts:2349` 的 `stripLinks` 会把已提取
|
|
|
| **安全约束** | ① 不接受任意 URL(只调两个固定路径)② company 由服务端固定 ③ 不记录/打印 token ④ 同号 60 秒冷却 ⑤ 10 秒超时 |
|
|
| **安全约束** | ① 不接受任意 URL(只调两个固定路径)② company 由服务端固定 ③ 不记录/打印 token ④ 同号 60 秒冷却 ⑤ 10 秒超时 |
|
|
|
| **验证** | 云函数三分支 ✅(发码 200 / 重复发码被平台限流拦 / 错误验证码原样透传)· **连续 6 次发码全成功** · CORS 稳定性对比:旧路径 15 次中 5 次多值 vs 新路径 **15 次 0 多值** · `parse-api.spec` **60 SUCCESS** · core **1362 SUCCESS** · build ✅ 594.29 kB |
|
|
| **验证** | 云函数三分支 ✅(发码 200 / 重复发码被平台限流拦 / 错误验证码原样透传)· **连续 6 次发码全成功** · CORS 稳定性对比:旧路径 15 次中 5 次多值 vs 新路径 **15 次 0 多值** · `parse-api.spec` **60 SUCCESS** · core **1362 SUCCESS** · build ✅ 594.29 kB |
|
|
|
| **遗留** | 平台侧多值 ACAO 未修(`docs/03-interface/平台CORS多值修复需求-20261115.md` 已备好);修复后本代理可保留也可下线 |
|
|
| **遗留** | 平台侧多值 ACAO 未修(`docs/03-interface/平台CORS多值修复需求-20261115.md` 已备好);修复后本代理可保留也可下线 |
|
|
|
|
|
+
|
|
|
|
|
+## 2026-11-15(续三)· 真机验证:App 安装并跑通
|
|
|
|
|
+
|
|
|
|
|
+| 项 | 内容 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| **设备** | 小米 25060RK16C,**Android 16(API 36)**,与 targetSdk 36 完全匹配 |
|
|
|
|
|
+| **安装** | `adb install -r app-debug.apk` → **Success**,App 正常启动无白屏 |
|
|
|
|
|
+| **V1 启动** | ✅ 登录页正常渲染(fmode 品牌 + 手机号输入 + 三种登录方式) |
|
|
|
|
|
+| **V2 登录链路** | ✅ **核心验证通过**:输入 `19900000099` → 勾选协议 → 点「获取验证码」→ **界面切到验证码输入态、手机号打码、进入 53 秒倒计时**,说明请求经云函数代理真的发到了平台并成功 |
|
|
|
|
|
+| **前置校验** | ✅ 未勾选协议时点按钮会弹「请先阅读并同意《服务协议》和《隐私政策》」,前端拦截正常 |
|
|
|
|
|
+| **V6 键盘遮挡** | ✅ **不遮挡**:键盘弹起后页面整体上移,输入框与登录按钮均在键盘上方可见(此前风险评估为「高优先级」,实测无问题) |
|
|
|
|
|
+| **V8 深链** | ✅ `adb shell am start -a VIEW -d "fmode://messages"` → Intent 被 App 接收(`delivered to currently running top-most instance`);未登录时被路由守卫拦在登录页,符合预期 |
|
|
|
|
|
+| **崩溃检查** | ✅ `dumpsys dropbox` 无 `cn.fmode.app` 记录 |
|
|
|
|
|
+| **通知权限** | `POST_NOTIFICATIONS` 已声明、未主动请求(按设计在首次真正要发通知时才申请) |
|
|
|
|
|
+| **未完成** | V3 会话列表/V4 收发消息/V5 文件上传 —— 需真实账号登录后才能验;V9 通知需产生一次任务完成事件 |
|
|
|
|
|
+| **构建** | `npm run build` → `npx cap sync` → `gradlew assembleDebug`,APK **6.8 MB** |
|