Files
TPSchedule/docs/tpschedule-0.6.1-validation.md

28 lines
3.0 KiB
Markdown
Raw Permalink 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.
# TPSchedule 0.6.1+16:启动衔接与过渡
2026-10-14。用户报告偶发开屏后黑屏2–3秒,希望增加进入首页的过渡。
## 调查与改动
旧入口在runApp之前等待完整controller.initialize,包括本地存储、通知及日历。延迟初始化回归在旧实现确认等待期间没有Flutter界面。另一个回归确认SchoolSession构造时就创建WebView,即使只查看本地课表也启动浏览器引擎。这两项均已先观察失败,再修复。
- 先正常runApp绘制轻量品牌帧,随后初始化时区并读取本地课表。没有使用deferFirstFrame/allowFirstFrame,也没有增加固定停留时间。
- 启动时使用initialize(reconcileServices:false),本地数据就绪后准备首页;通知与日历在首页场景提交后独立同步。默认initialize行为保留,其他业务调用不变。
- SchoolSession的WebViewController改为首次学校访问时创建并复用;导航限制、HTTPS升级、身份验证、读取、学期选择、退出清理逻辑保留。
- 首页先在不透明品牌覆盖层下布局和提交场景,再用300ms淡出品牌,首页轻微上移6逻辑像素。完成前禁止点击、焦点与首页无障碍操作;后台返回不重播该过渡,减少动画时直接显示。
- 首个Flutter品牌帧与原生启动屏衔接:统一#38B3FF底色,原图标居中,前景画布188.8dp。基础及drawable-v21启动资源都已同步。应用图标及原SVG不改。
- 引导阶段的插件异常可重试;保存文件读取失败仍进入原有恢复界面。没有用超时清空课表或重建保存文件。
不透明覆盖层确认首页完成布局并提交场景,不保证隐藏内容已经全部由GPU渲染;手机最终效果仍受设备渲染影响。
## 验证
- 197项Flutter测试通过,静态分析无问题。
- 覆盖持续等待仍显示品牌、逐步过渡/期间防误触、失败重试、减少动画、页面销毁后异步回调、后台返回不重播、数据先于慢提醒服务就绪、坏文件恢复、学校浏览器延迟创建和重用及导航策略。
- 独立代码审阅启动调度、状态保留、通知点击及学校登录逻辑。审阅指出Android24–30还使用drawable-v21覆盖文件,已同步修复;复查未发现其他需修改问题。
- 发布/调试APK构建并核对原证书。API36模拟器覆盖安装保留原课表,冷启动无需触碰自动进入首页;确认首页完成后返回桌面并再打开,检查过渡没有重播。
- 实际录屏在dist/screenshots/tpschedule-061-startup-warm.mp4,采样帧在tpschedule-061-startup-frames.png。工具输出在本地.tools/tpschedule-061-*,不随源码分发。模拟器采用软件兼容渲染,不能代替vivo X200 Pro真机复测,也不能将系统首屏计时解释为首页全部渲染耗时。
- 包名com.tpschedule.app、原签名、公私钥、0.5.4登记冻结及V1.0材料保持。反馈服务及雷池部署步骤不变。
参考:[Flutter原生启动屏衔接](https://docs.flutter.dev/platform-integration/android/splash-screen)。