Commit Graph

25 Commits

Author SHA1 Message Date
Max 0d259334ee feat: 重构启动配置与升级配置分离,修复 WebView 错误浮层竞态条件
- 将 ShellRemoteConfig 拆分为 ShellBootstrapConfig(启动配置)和 ShellUpgradeConfig(升级配置)
- ShellBootstrapConfig 支持 initialUrl 和 preferredOrientations
- ShellUpgradeService 改为独立获取升级配置,不再依赖启动配置
- ShellEnvironment 新增 bootstrapConfigAsset / bootstrapConfigUrl / upgradeConfigUrl / copyWith
- 修复 WebView 错误浮层被 onPageFinished 重置的竞态条件
- 修复 Offstage 导致 Stack 坍缩为零尺寸的白屏问题,改用 Visibility
- 增强 recovery.dart 对原始 net::ERR_* 字符串的友好翻译
- 重新生成 3 个品牌应用(aixue / test / yunxiao)的图标和启动页资源
- aixue 应用改用 bootstrapConfigAsset 加载本地启动配置
- 移除 launch.json 中已废弃的 quanxue 配置
2026-03-20 17:23:03 +08:00
Max bf0f0e082f feat(publish): App 签名自动配置及依赖清理优化
- 新增 `generate_app.dart` 中的签名注入逻辑:读取 `signing` 节点或回退至默认 `tool/key.jks` 配置,自动生成 `android/key.properties`,并在 `build.gradle.kts` 中注入 `signingConfigs.release` 配置
- 修复: 在静态资源生成后主动运行 `flutter pub remove flutter_native_splash` 和 `flutter_launcher_icons` 避免其产生的编译阶段 Hook 破坏 Release 打包流程
- 执行: 重新生成并覆盖了 `test`、`aixue`、`yunxiao` 三个应用,现在可直接执行 `flutter build apk --release` 和 `appbundle` 上架构建
2026-03-20 11:47:59 +08:00
Max b8d7ec5a55 chore: 移除 quanxue 应用及相关配置 2026-03-20 11:17:48 +08:00
Max d6c6d6cc1c feat(flavor): 新增测试 (test) 内部应用 Flavor
- 新增:  默认初始 URL () 主要用于开发调试
- 新增:  内含 AI 生成的 极客/测试风 Icon 及 启动图片 (霓虹绿/深灰)
- 产物:  构建完毕
2026-03-20 11:14:02 +08:00
Max 10363abba4 feat(flavor): 新增爱学蝶变 (aixue) 应用 Flavor
- 新增:  默认初始 URL ()
- 新增:  内含 AI 生成的 品牌 Icon 及 启动图片 (日落橘紫蝴蝶/书本风格)
- 产物:  构建完毕
2026-03-20 11:10:39 +08:00
Max 4a235af054 feat(flavor): 新增云校嗨学 (yunxiao) 应用 Flavor 并支持自定义 defaultUrl
- 扩展:  支持注入  到
- 新增:  配置与资源图 (Icon & Splash)
- 产物: 生成  壳应用代码
2026-03-20 11:08:32 +08:00
Max 283c3ed601 test: 修复测试覆盖度 — 修复 LaunchOverlay 断言 + 扩展 Bridge 检测 + 补充 Phase 2 单测
Phase 3 测试覆盖修复:
- 修复 LaunchOverlay 测试:CircularProgressIndicator + appName 替代旧 UI
- Bridge 脚本检测从 8 → 12 个 Action
- test_hooks.dart: 新增 4 个 Phase 2 测试钩子
- 新增 10 个 Phase 2 单元测试:
  · getDeviceInfo smoke test
  · getNetworkStatus (WiFi/cellular/none) 3 个
  · setStatusBar (light/dark+color/empty) 3 个
  · showToast widget test + 空消息守卫
- 全部 84 条测试通过 
2026-03-20 10:48:23 +08:00
Max d4f7899351 feat(bridge): 新增 Phase 2 协议函数 — getDeviceInfo / getNetworkStatus / showToast / setStatusBar
- 新增 device_info_plus 和 connectivity_plus 依赖
- bridge_protocol.dart: AppShell API 从 8 个扩展到 12 个
- bridge_actions.dart: 实现 4 个 Dart 处理器 + 原生风格 Toast 动效组件
- shell_page.dart: 新增 4 个 action 分支
- test_bridge.html: 新增 4 个测试区块,Bridge 检测覆盖全部 12 个方法
2026-03-20 10:30:29 +08:00
Max dad37faecb feat(launch_overlay): 使用品牌 Logo 和 AppName 替换通用图标
- ShellEnvironment 新增 splashImage 字段支持品牌启动图标
- LaunchOverlay 使用 splash.png 替换 Icons.language_rounded
- 标题改为品牌名称(appName),移除副标题
- 加载指示器改为 CircularProgressIndicator 不定态转圈
- 使用 accentColor 主题色
- generate_app.dart 自动注册 assets/branding/ 并生成 splashImage 配置
- quanxue pubspec.yaml 注册 assets/branding/ 目录
2026-03-20 10:14:43 +08:00
Max 8ac3a222c1 feat: 则跟你讲唉设备状态 2026-03-20 09:58:52 +08:00
Max fb84e6f4fe feat: init 改为 测试web 2026-03-20 09:56:02 +08:00
Max 498fa823a0 merge: refactor_monorepo → main
重构为 monorepo 架构,核心变更:
- 拆分 core_app.dart (2100行) 为 15 个模块化文件
- 重写 generate_app.dart 品牌资源生成流程
- 补全 web_shell_core Android 权限/Impeller/手势配置
- 测试覆盖 67 用例
- 全量文档更新
2026-03-20 04:49:04 +08:00
Max 8db977c3d9 fix: 注入 Android 13 预测手势并在底层强制禁用 Impeller 引擎保障 WebView 渲染稳定 2026-03-20 04:43:14 +08:00
Max 77af598f3e fix: 补充 web_shell_core 缺失的 Android 权限及清单属性
利用 Android Manifest Merger 的特性,将所有核心权限声明在 web_shell_core 的库清单中。
- 补齐了 INTERNET, CAMERA, STORAGE, BLUETOOTH 等全套权限,确保 H5 与 permission_handler 正常工作
- 添加了 Android 11+ 所需的 url_launcher queries 白名单
- 巧妙注入 android:usesCleartextTraffic="true",优雅解决了 HTTP 明文流量被拦截的问题
生成的品牌 App 现在可以零配置开箱即用
2026-03-20 04:38:37 +08:00
Max 4438727b32 fix: 移除 flutter create 默认生成的 widget_test.dart 避免报找不到 MyApp 错误 2026-03-20 04:36:52 +08:00
Max 5569db3a1a docs: 替换 AI 生成图为精准带标尺的程序化工程蓝图 2026-03-20 04:33:09 +08:00
Max 3b661417f1 chore: 更新全学通品牌核心资源 (严格合规)
- 使用 Python 重绘 icon.png (1024x1024)
- 生成带透明圆形遮罩的 icon_foreground.png (1024x1024, 内容安全区682px)
- 生成带透明圆形遮罩的 splash.png (1152x1152, 内容安全区768px)
- 重新运行 generate_app.dart 同步资源到 Android 原生目录
- 新增 doc/品牌资源规范.md 及相关配套示意图
2026-03-20 04:31:14 +08:00
Max 7735894c5c feat: 修复 generate_app.dart 品牌资源生成流程
- 重写 generate_app.dart:添加品牌名校验、--android-language java、
  自动安装 flutter_launcher_icons/flutter_native_splash dev 依赖、
  所有 Process.run 结果检查 exitCode
- 更新 quanxue.yaml:添加 branding 配置段
- 新增 flavors/quanxue/ 品牌资源目录(icon、foreground、splash)
- 重新生成 apps/quanxue(含品牌图标和启动页)
- 更新 README.md:品牌配置示例、资源规格说明、生成步骤
- 更新 web_shell_core/README.md:测试数量 54 → 67
2026-03-20 04:19:33 +08:00
Max a3b970d2b8 test: 测试覆盖率 54→75 用例
新增 7 个测试组:
- ShellEnvironment 配置验证(字段/默认URL/https地址)
- Bridge JS 协议格式(版本号/通道守卫/8 Action/成功响应/失败响应)
- AndroidCompatibilityPlan describe 格式(fallback/现代设备/F136A/空字段)
- 相机边界场景(无 controller/不弹窗/返回 null)
- 多文件序列化(多 XFile/空列表/URI 转换)
- 看门狗常量验证(旧相机脚本/版本解析)
2026-03-19 20:05:43 +08:00
Max 115713d8f4 docs: 完善全部项目文档
- 重写根 README.md(项目结构 + 快速开始 + 品牌配置 + 调试说明 + 技术栈)
- 重写 web_shell_core/README.md(功能表 + 使用方式 + 代码结构 + 测试 + 原生层)
- 重写 apps/quanxue/README.md(品牌应用说明)
- 更新 packages/web_android_shell/README.md(迁移通知)
- 填充 web_shell_core/CHANGELOG.md(0.0.1 初始发布内容)
- 新增 doc/architecture.md(分层架构 + 启动流程 + Bridge 协议 + 兼容策略)
- 修正 pubspec.yaml 中的占位 description
2026-03-19 20:00:04 +08:00
Max 97be25b332 chore: 中文化日志注释 + 测试覆盖率 25→54 + iOS 清理 + 代码优化
- 全面中文化 debugPrint 日志(bridge_protocol, media_service, navigation_service, shell_page)
- Java 异常处理注释中文化(CoreShellActivity)
- 新增 29 个测试用例覆盖边界场景(URL/序列化/兼容性/错误映射/Accept类型/boolValue/MIME)
- 提取 _buildAndroidWidgetParams 方法,优化 summary getter 可读性
- 删除 iOS 相关文件(仅支持 Android 平板)
- 测试中使用 cascade notation 改进风格
2026-03-19 19:54:29 +08:00
Max bae37a4bb5 Refactor: split core_app.dart (2100 lines) into 15 modular files across 5 directories 2026-03-19 17:24:57 +08:00
Max a4a714f037 Refactor: migrate to Monorepo N-brand architecture with automated scaffolding 2026-03-19 16:58:03 +08:00
Max 163f0a89f9 chore: save state before monorepo refactor 2026-03-19 16:43:52 +08:00
Max c36ea7bfc8 Initial commit: Flutter web android shell project 2026-03-19 16:00:05 +08:00