Files
youle_app_ohos/docs/设计文档/Plan/03_风险登记册.md
T
lanterngamescn 40b8c2e91c 计划进度: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>
2026-06-25 18:43:18 +08:00

5.4 KiB
Raw Blame History

03 · 风险登记册

概率/影响:高/中/低。状态:开放/缓解中/关闭。受阻任务()须在此登记。

1. 技术风险(最高优先)

ID 风险 概率 影响 触发信号 缓解 / 应对 负责人
R-01 yy:// 自定义 scheme 的 iframe 导航不被 onLoadIntercept 捕获(桥不通) 高(阻断全局) T-M1-07 验证失败 前置到 M1 最先验证;回退:onInterceptRequest+WebSchemeHandler 注册 yy scheme;或改桥 JS 走 javaScriptProxy.postMessage(对 H5 透明)。三方案均零改 H5 桥/技术负责人
R-02 关闭 file:// 页面跨域受限H5 的 XHR/fetch 取本地资源失败 高(大厅/子游戏白屏) T-M2-08 验证失败 已关闭(2026-06-25)T-M2-08 首测确被 CORS 拦截(origin 'null'file 不在允许跨域 scheme);采用官方方案 WebviewController.setPathAllowingUniversalAccess([filesDir/tsgames]) 放开资源根跨域,对 H5 透明(仍 file:// 加载)。模拟器复测 fetch/XHR OK。比 onInterceptRequest 代理更简、无需逐请求拦截 台/桥
R-03 MessageCodec 转义与 lzyzsd 不一致,含特殊字符的 data 解析错位 含引号/反斜杠/中文的分享文案、JSON data 解析异常 单测以 Android 端样例做字节级对照;复用库 JS 原文件
R-04 线程问题:能力回调在非 UI 线程调 runJavaScript 崩溃/丢消息 定位/支付/传感器回调偶发崩溃 强制 UI 线程守卫(框架 §5.5);能力回传统一经桥(emitter/UIContext
R-05 TaskPool Sendable 约束导致下载/解压回调传参编译/运行失败 @Concurrent 报 Sendable 错 仅传 Sendable + emitter 回传(§9.1);路径在 UI 线程取好传字符串
R-06 远程配置二级 url/分层覆盖逻辑与 Android 不一致,选错下载地址/版本 资源版本判断错误、下错包 VersionResolver 纯函数 + 多层样例单测,对照《契约规范》§4.4
R-07 Web 保活(NodeController/BuilderNode)生命周期/内存复杂,切换异常或泄漏 切换白屏/内存涨 M5 才上;先用 loadUrl 切换保底;保活作为优化项可回退
R-08 app_data.js 注入时序错误(加载后才写),H5 读不到配置 大厅读 app_* 为 undefined 铁律:INJECT_APP_DATA 早于进入容器(框架 §7.1/§8.4);测试覆盖

2. 第三方 SDK / 平台风险

ID 风险 概率 影响 缓解 / 应对 负责人
R-09 微信/分享/定位等厂商 HarmonyOS SDK 缺失或能力不全 早期做 SDK 可用性盘点;缺失则系统能力替代(如系统分享/系统定位)或服务端代理;登录/支付走 code/服务端
R-10 声网/支付 SDK 集成成本高 低(本期桩规避) 本期占位桩,M6 按需集成;不阻塞主线
R-11 高德等定位 SDK 隐私合规未先行,定位失败/审核不过 使用前 updatePrivacyShow/Agree;权限用时申请 + 文案;优先系统定位
R-12 本机 HTTP 上传服务(截图)实现复杂(无内置 server) @ohos.net.socket 自建轻量服务或 NAPI;截图分享非核心可后置
R-13 ArkWeb 版本差异导致 API 行为变化 锁定目标 API 版本;编码前 devecocli docs 核对签名;CI 固定 SDK

3. 工程 / 进度风险

ID 风险 概率 影响 缓解 / 应对 负责人
R-14 团队 ArkTS/ArkUI 经验不足,前期效率低 M0/M1 配对开发;沉淀附录 A 适配清单;统一脚手架样板 技术负责人
R-15 契约理解偏差导致 handler 行为不符,后期返工 contracts HAR 固化为 SSOT;契约探针 H5 每周回归;评审对照 Q
R-16 能力并行开发接口/风格不统一 CapabilityProvider 统一接口 + Provider 样板;代码评审
R-17 真机/设备不足影响联调与回归 早期备真机 + 模拟器;CI 夜间冒烟 PM
R-18 单测运行工具链缺口devecoclitest 子命令 已关闭:用 DevEco hvigorw test --mode module -p module=entry@default -p buildMode=test -p coverage=true(需 DEVECO_SDK_HOME 指向 DevEco 自带 sdk)跑本地单测,封装为 scripts/test.sh 并集成 ci.sh 桥/技术负责人

4. 受阻任务记录(动态更新)

日期 受阻任务 关联风险 描述 处置 状态
2026-06-25 T-M1-08 桥引擎单测 R-18 13 用例代码已就位,但 devecocli 无 test 命令、本地单测 hvigor task 未常规暴露,无法 CLI 跑覆盖率 用户授权 hvigorw 例外;探明本地单测命令并封装 scripts/test.sh15 用例全通过、桥核心覆盖 87.3% 已关闭

5. 风险闸门(与里程碑绑定)

  • M1 闸门:R-01 必须收敛(V1 通过或回退方案落地)方可进入 M2。
  • M2 闸门:R-02 必须收敛(V2 通过或回退方案落地)方可大规模铺 M3 能力。
  • M5 闸门R-04/R-07 收敛 + 安全清单(框架附录 B)通过方可发布。