已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
31
docs/操作日志_用户端APP_报修语音输入_20260908.md
Normal file
31
docs/操作日志_用户端APP_报修语音输入_20260908.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# 报修语音输入操作日志
|
||||
|
||||
操作时间:2026-09-08。操作类型:扩展。影响模块:图05故障描述、系统权限。
|
||||
|
||||
## 实现
|
||||
|
||||
`speech_to_text 7.4.0` 调用设备系统识别服务;只在点击语音输入时初始化和申请权限。应用不保存录音文件,不向业务后端发送音频,系统识别服务可能使用网络。识别结果进入原故障描述,可在结束后校对编辑,再沿用既有草稿与报修提交接口。
|
||||
|
||||
`RepairSpeech` 接口隔离平台和组件测试;`SystemRepairSpeech.instance` 复用唯一系统实例,优先匹配设备提供的 zh-CN 语种。`RepairSpeechButton` 保存启动时的文本与选区,将本轮完整识别结果替换同一区域,避免中间结果重复追加。保留前后文字,按字符簇限制2000字,避免截断表情。拒绝权限、不可用、网络错误、无识别结果均有中文反馈,已有文字保留。
|
||||
|
||||
识别期间禁止下一步、暂存、地址切换及照片操作;用户可结束识别。初始化时的系统授权窗口可能触发 inactive,不能误判为切后台;paused、离页和50秒兜底超时会取消识别,迟到回调不再修改输入。
|
||||
|
||||
## 变更文件
|
||||
|
||||
- `apps/user_app/lib/data/services/repair_speech.dart`:系统单例适配、识别回调、停止与取消。
|
||||
- `apps/user_app/lib/ui/features/tickets/repair_speech_button.dart`:文字选区保护、状态、权限错误与生命周期。
|
||||
- `apps/user_app/lib/ui/features/tickets/repair_page.dart`:描述框内语音入口、识别中操作约束。
|
||||
- `apps/user_app/android/app/src/main/AndroidManifest.xml`:麦克风权限及 RecognitionService 查询;显式禁用蓝牙识别支持,未额外申请蓝牙权限。
|
||||
- `apps/user_app/ios/Runner/Info.plist`:麦克风和语音识别用途;相机/相册用途补充实际报修照片功能。
|
||||
- `apps/user_app/pubspec.yaml`、`pubspec.lock`:新增speech_to_text及3项传递依赖,未升级其他既有依赖。
|
||||
- `apps/user_app/test/ui/repair_speech_test.dart`:5项语音组件测试。
|
||||
|
||||
## 验证
|
||||
|
||||
analyze无问题,全量68项测试通过;随后增加权限弹窗/切后台边界,语音5项定向测试全部通过。8组图05视觉与滚动溢出检查通过,已打开390×844实际截图,语音按钮位于故障描述框右下。Web Release构建通过,API地址为127.0.0.1:12426。
|
||||
|
||||
Android Debug构建通过(174.4秒),产物 `apps/user_app/build/app/outputs/flutter-apk/app-debug.apk`,159209325字节。本次APK编译的API地址为127.0.0.1:12426,设备运行需通过adb reverse转发12426端口或重新构建指定设备可访问的API地址,不能直接把手机环回地址当开发电脑。该构建仍提示speech_to_text/tobias的旧Kotlin Gradle插件兼容性警告,未阻止当前构建;未来升级Flutter需复核。
|
||||
|
||||
原API/Web进程已退出且旧临时API文件不存在,已重新编译启动API与Web预览,仍读取原远程配置。浏览器重新登录测试账户后实际看到描述框中的语音输入入口,控制台无警告/错误;本轮未开启麦克风,没有采集现场声音、修改地址或提交工单。
|
||||
|
||||
识别平台能力以[插件官方说明](https://pub.dev/packages/speech_to_text/versions/7.4.0)为准。自动化测试注入可控识别结果,不等同于真实麦克风语音成功;Android/iOS设备和实际语音采集仍未验收。没有新增数据库字段、后端接口或迁移;PostgreSQL和Redis保持原远程配置。
|
||||
Reference in New Issue
Block a user