Commit Graph

23 Commits

Author SHA1 Message Date
Max ce3122861c chore: 补充 satellite 网络类型、升级测试资源与依赖锁定
- bridge_actions: 新增 ConnectivityResult.satellite 分支映射
- test_assets: 更新 bootstrap/config 测试资源与 bridge 调试页面
- apps: 同步 pubspec.lock 依赖锁定
- flavors: 更新 test.yaml 配置
2026-04-02 14:28:19 +08:00
Max c1d2db1d60 feat: extend media bridge and document changes 2026-04-02 13:38:15 +08:00
TangJo 42d12212e4 feat:新增注释 2026-03-26 10:23:24 +08:00
TangJo c08d5b58eb feat:加载远程配置 2026-03-26 09:54:18 +08:00
TangJo 44cf59749d Merge branch 'main' of https://gitea.23544.com/wangyang/web_shell_flutter 2026-03-25 17:55:03 +08:00
TangJo 24d8fc3a2d feat:支持升级功能。 2026-03-25 17:55:02 +08:00
Max 6e08349556 fix: ErrorOverlay 不可见 — Stack 在 Visibility(visible:false) 时坍缩为 0×0
当 _hasMainFrameError=true 时,Visibility(visible:false) 将 WebView
替换为 SizedBox.shrink()(0×0),这是 Stack 唯一的非 positioned 子组件。
Scaffold.body 提供松约束(0→max),导致 Stack 尺寸为 0×0,
Positioned.fill 的 ErrorOverlay 也变为 0×0,用户只能看到 Scaffold 的
深色背景而看不到错误页面的内容。

修复方式:用 SizedBox.expand() 包裹 Stack,强制紧约束使其始终填满屏幕。

附带变更:
- 添加 _debugLog() 封装(kDebugMode 保护)
- 在 7 个关键状态转换点添加调试日志
2026-03-24 15:54:38 +08:00
TangJo 0a17e1c4f7 feat:1.generate_app 兼容windows;2.支持windows 打包apk。 2026-03-23 16:34:02 +08:00
Max 435d99772c feat: 拆分启动与升级配置并补齐核心测试 2026-03-20 19:47:50 +08:00
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 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 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 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