Files
TPSchedule/docs/tpschedule-0.7.1-validation.md
T

40 lines
4.3 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.
# TPSchedule 0.7.1+19:学校网页兼容性诊断与修复
2026-10-15,工程F:/program/app。用户确认先修现有WebView兼容配置并增加诊断,保留课表HTML导入能力;没有内置独立Chromium或改用Chrome Custom Tabs。
## 证据与本次处理
用户截图显示登录后的静态文字正常,但CSS、图片和菜单组件没有加载。所提供的0.7.0诊断文件仅13条事件,含认证跳转期间的FormatException,没有子资源错误。因此不能从旧日志断言所有组件失败的原因。
本地回归复现两个确定问题:页面跳转期间脚本返回另一页面的证据,会被当作永久读取失败;旧探测尚在进行时收到新页面完成通知,会因探测锁被忽略。本版忽略已过期的页面证据并重新检查当前页面;身份认证页不进行课表证据捕获,继续等待学校回调。
Android学校WebView在首次请求前启用宽视口及第三方Cookie,沿用插件已有的DOM存储和JavaScript设置。仅将已经使用的webview_flutter_android 4.14.1声明为直接依赖,没有引入新内核。初始化期间取消或关闭页面不会迟到地继续导航。获取Chromium版本并在学校页面提示区显示。
诊断新增主页面、嵌入页面和资源错误,区分脚本/CSS/图片/其他请求、HTTP或HTTPS及数字错误状态;控制台仅记录混合内容、CSP、跨域、资源拒绝、脚本错误等固定类别,不保存原始文字。不会保存密码、验证码、Cookie、完整URL、课表HTML或学生身份内容。
旧反馈服务器拒绝diagnostics字段时,APP将明确提示更新日志协议,避免误报为用户填写错误。服务端协议未再改变,0.7.0日志服务更新包继续适用;用户后来已提供日志,本次没有连接服务器或实发邮件。
## 验证
- Flutter完整套件255项通过;静态检查无问题。
- Android16/API36原生WebView集成测试1项通过。模拟器系统WebView为133.0.6943.137;同一原生页面的width=1200视口在配置前被忽略、配置后生效。Chromium版本有效,控制台测试敏感标记未进入导出日志。
- 针对性回归包含两所学校等待配置完成才导航、配置期间取消、子资源出错不终止整页登录、两种认证跳转竞态和旧反馈服务错误提示,均观察到RED→GREEN。
- 使用原com.tpschedule.app包名与原签名;0.7.0安装包单独保留为dist/TPSchedule-0.7.0.apk。登记0.5.4及V1.0资料不变。交付时复核构建、签名、18项冻结摘要和源码包。
- 独立审查没有阻塞问题;发现HTTP回调缺少帧类型时被标成子资源,本版已改为unknown,避免把主文档失败误标为子资源。原生插件未提供该HTTP帧标记,不能猜测。
## 实际边界
尚未在用户本人手机和真实学校账号下验证CSS/JS资源全部加载、登录回调和在线导入;本版修复已复现的登录识别中断,并补兼容设置和必要日志,不能宣称用户截图中的资源缺失已全部解决。若仍缺组件,新日志会提供旧版没有的加载错误类别和状态码。
没有放开所有域名、HTTP资源或SSL证书校验。若日志确认学校资源或回调被规则拦截,应按实际学校域名和路径调整。当前仍采用系统Chromium WebView,可通过设备系统更新该组件。
原有液态玻璃效果保持;本次不包含玻璃偏移修复。原始学生截图、HTML和诊断附件不进入仓库或安装包。
参考:[Android宽视口说明](https://developer.android.com/develop/ui/views/layout/webapps/targeting)、[Chromium Android WebView](https://www.chromium.org/developers/androidwebview/)、[Flutter WebView](https://pub.dev/packages/webview_flutter)。
## 最终构建与保存
发布与调试APK重新构建成功;最终包名com.tpschedule.app,versionName=0.7.1、versionCode=19,标签TPSchedule。发布包60090191字节,SHA256:D270A5E1B6450651D88B2A6631413C8FA4E293EBEADB9F4FB7ED081B4EB742D3。
与0.7.0证书逐字节比较一致,签名证书SHA256为AF5C21B1BA1E48E461D8EA38DF0FE1C3653F64EB7E8E7728BAE6E5D988BA0D0A;私钥文件摘要未变,登记冻结18项及0.7.0/0.6.2备份摘要均一致。最终微小日志标签修复后再次执行255项测试及静态检查,均通过。独立审查及处理结果见tpschedule-0.7.1-review.md。