计划进度:M2 完成、R-02(V2 file:// 跨域)关闭
- 01_任务分解WBS:M2 标记完成(13 任务),新增 M2 任务明细块与决策/偏差记录 - 03_风险登记册:R-02 关闭(setPathAllowingUniversalAccess 方案 + 真机复测 OK) - 框架 §7.3:file:// 跨域改为已验证的具体方案(setPathAllowingUniversalAccess),保留 onInterceptRequest 回退 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|---|---|---|
|
||||
| **M0** 脚手架 + 契约类型 | ☑ 完成 | 7 任务全完成并真机/模拟器验证 |
|
||||
| **M1** 桥引擎 | ☑ 完成 | 8 任务全完成;**V1 真机通过**、桥核心单测覆盖 87.3% |
|
||||
| **M2** 容器 + 启动 + 资源 | ☐ 未开始 | 含 V2 阻塞性验证 |
|
||||
| **M2** 容器 + 启动 + 资源 | ☑ 完成 | 13 任务全完成;**V2 真机通过(R-02 关闭)**、VersionResolver 单测覆盖 81.8%;T-M2-12 机制已验证(真实远程大厅待服务端可用时终验) |
|
||||
| **M3** 本期能力 | ☐ 未开始 | — |
|
||||
| **M4** 通用网页容器 | ☐ 未开始 | — |
|
||||
| **M5** 性能与加固 | ☐ 未开始 | — |
|
||||
@@ -43,6 +43,31 @@
|
||||
- ☑ T-M1-08 桥引擎单测:15 用例全通过,桥核心覆盖率 87.3%(≥80%);
|
||||
运行方式 = scripts/test.sh(DevEco hvigorw 本地单测,已解决 R-18)
|
||||
|
||||
**M2 任务明细(全部 ☑)**:
|
||||
|
||||
- ☑ T-M2-01 平台存储/文件:KvStore(preferences)、FileSystem(fileIo 增删读写/列目录/拷贝内置 rawfile)
|
||||
- ☑ T-M2-02 网络/下载:HttpClient(GET 禁缓存)、Downloader(http 流式写盘+进度)
|
||||
- ☑ T-M2-03 解压:Unzipper(zlib.decompressFile)。**偏差**:下载/解压用原生异步 API 即满足"UI 不阻塞",
|
||||
独立 TaskScheduler(TaskPool) 推迟到 M5 真有 CPU 密集任务(MD5)时再加,避免投机性死代码
|
||||
- ☑ T-M2-04 权限/上传:PermissionGuard(用时申请,沙箱文件免存储权限)、LocalUploadServer(骨架,TCP 服务 M3 落地)
|
||||
- ☑ T-M2-05 ConfigManager:本地 rawfile/app_config.json + 远程拉取/校验(<30 阻断)/二级 url + 决策
|
||||
- ☑ T-M2-06 VersionResolver:纯函数两棵树后层覆盖;单测 8 用例全通过,覆盖率 81.8%(≥80%)
|
||||
- ☑ T-M2-07 ResourceManager:路径规范、内置包拷贝解压、version.xml 解析、远程 zip 下载/删旧/解压、版本比较
|
||||
- ☑ T-M2-09 AppDataInjector:加载前写 app_data.js(§6 全局变量同名同义)
|
||||
- ☑ T-M2-11 StartupOrchestrator:INIT→…→ENTER_HALL 状态机,远程失败降级本地、showmessage 阻断
|
||||
- ☑ T-M2-13 能力插件框架骨架:CapabilityProvider/Context/Registrar + 组装根 buildCapabilities() + 样板
|
||||
- ☑ T-M2-10 BridgeGameContainer 完整化:Registrar 注册能力、首次 100% 推 appservice/setPostUrl、清理、入口 URL
|
||||
- ☑ **T-M2-08 V2 阻塞性验证真机通过**:file:// fetch/XHR 首测被 CORS 拦截,用
|
||||
`setPathAllowingUniversalAccess` 放开资源根跨域(对 H5 透明)后复测 OK;R-02 关闭
|
||||
- ☑ T-M2-12 集成联调:用内置测试大厅(gamehall_builtin.zip)端到端验证全链路(启动→资源→app_data→
|
||||
file:// 加载→跨域 fetch→桥双向)真机通过。**真实远程大厅** H5 需服务端/网络可用时做终验
|
||||
|
||||
**M2 期间确立的项目决策/偏差**:
|
||||
- file:// 跨域采用 `WebviewController.setPathAllowingUniversalAccess([filesDir/tsgames])`(官方"本地资源跨域"方案),优于通用 onInterceptRequest 代理。
|
||||
- 沙箱路径简化:弃用 Android 的 `<包名>/<时间戳>` 多级目录,用固定 `filesDir/tsgames/<gamedir>`(§5.1 许可,对 H5 无影响)。
|
||||
- 启动期不申请敏感权限(沙箱文件免存储权限;定位/电话等由 M3 Provider 用时申请),仅声明 INTERNET。
|
||||
- 内置 `gamehall_builtin.zip` 为 M2 测试大厅(含 V2 验证页),真实大厅由远程 zip 生产下发;M3 用真实 Provider 替换 EchoSampleProvider。
|
||||
|
||||
**M0 期间确立的项目决策(超出原计划的补充)**:
|
||||
- 包名 `com.lobby.daoqi`;横屏项目,`module.json5` 配 `auto_rotation_landscape`(横屏两朝向跟随旋转、不进竖屏,H5 显式方向控制保留)。
|
||||
- ArkTS 验证用 `devecocli build`(其 CompileArkTS 为权威编译器);deveco-mcp 的 LSP check 因 70s 索引 / 20s 超时不可用。
|
||||
|
||||
Reference in New Issue
Block a user