Fix school browser initialization and redirect detection; improve diagnostics
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# 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。
|
||||
Reference in New Issue
Block a user