Files
prop-ai-hr/docs/MOBILE_APP_DEVICE_ACCEPTANCE.md
T
adminandClaude Opus 5 5cf7ce5847 feat(practice): run realtime practice on App-Plus through renderjs
App-Plus has no WebRTC or getUserMedia in the logic layer, so realtime
practice was H5-only and the native entry had to advertise a record-then-
transcribe downgrade.

Move the media/WebRTC engine into `realtime-browser-engine.js` and drive it
from `RealtimePracticeAppBridge.vue`, whose renderjs script runs inside the
system WebView where those APIs do exist. The logic layer keeps the
authenticated calls: SDP exchange and `search_knowledge` tool invocation stay
server-proxied, so the access token is never handed to the view layer. Both
sides talk over the renderjs bridge only in session payloads the server
already assembled.

Verified against a real App build (`app-renderjs.js` holds RTCPeerConnection
and getUserMedia; `app-service.js` holds the SDP endpoint, renderjs side has
zero hits). Microphone permission, live transcription, remote playback,
foreground/background switching and disconnect fallback still require Android
and iOS device verification.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 23:58:10 +08:00

33 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 原生 App 真机验收清单
此清单用于 Android/iOS 自定义基座或签名包验收。`npm --prefix mobile-uni run verify:app-assets` 只校验静态资源和 manifest 映射,不能替代本清单。
## 预条件
1. 已执行 `npm --prefix mobile-uni run build:app`,并使用 HBuilderX 的**自定义运行基座**运行当前资源。
2. Android 首次上机前,复制 `mobile-uni/androidPrivacy.json.example` 为 `mobile-uni/androidPrivacy.json`,替换两个法务确认的 HTTPS 链接;再执行 `npm --prefix mobile-uni run verify:app-release`。
3. 使用有效的移动端测试账号;不得把管理员 Web 登录态当作 App 登录验证。
4. 每台设备保留系统版本、App `versionName/versionCode`、基座/包哈希、录屏或截图和失败日志。
## Android(最低 Android 10 + 一台当前主流机型)
- [ ] 首次启动先显示原生隐私弹窗;两个协议链接可打开,拒绝后退出,同意后才进入登录。
- [ ] 手机号登录、短信验证码错误、登录失效重登均符合预期。
- [ ] 首次录音允许麦克风后,可完成转写;拒绝麦克风后不循环申请,能选择本地音频继续。
- [ ] 原生实时对练可完成麦克风授权、实时转写与远端语音播放;WebRTC/WebView 不可用或断线时明确提示并保留录音对练。
- [ ] 图片、视频、文档和音频可选择并上传;受控附件下载后可打开,不泄露 OSS 地址。
- [ ] 前后台切换、网络断开/恢复、窄屏和底部手势区无白屏、遮挡或重复提交。
- [ ] 再次安装同版本后,桌面图标、启动图和 Android 导航栏不闪白。
## iPhone(iOS 15 + 一台当前刘海或灵动岛机型)
- [ ] 初次访问录音时,系统麦克风说明与功能一致;拒绝后可选择音频且不崩溃。
- [ ] 选择图片/视频/文件时,系统照片/文件访问说明与功能一致;取消选择不会残留上传状态。
- [ ] 登录、录音转写、TTS 播放、上传、受控下载、前后台切换均通过。
- [ ] 启动图全屏,无黑边;状态栏、刘海、底部安全区和键盘不遮挡主要操作。
- [ ] App Store 图标无透明通道、未预制圆角;真机图标更新后重启设备复核 iOS 缓存。
## 通过口径
每个平台的必测项全部通过,且录音拒绝、媒体取消、登录失效和离线恢复四种反例均留有证据,才可进入签名包或 TestFlight/企业 APK 测试。任何 App 壳、权限、原生插件或证书变更都必须重新云打包并重跑本清单。