refactor(harmony): 23 处废弃 API 换成 UIContext 写法(全局 promptAction.showToast 自 API 18 废弃)

SDK 里写得很清楚:`@ohos.promptAction.d.ts` 的全局 `showToast` 标着 `@deprecated since 18`,
替代品是 `UIContext.getPromptAction()`。仓库里有 23 处这种调用(6 个页面,历史遗留)——
这一轮既然在按"用系统方案"整理鸿蒙侧,就一次扫干净,并加判据挡住回潮。

- `promptAction.showToast(...)` → `this.getUIContext().getPromptAction().showToast(...)`(23 处)
- 清掉不再需要的 `promptAction` import(多个 → 只留 `router` 等)
- 新增判据:不得再用全局写法。防的不是这次,而是**新增页面照抄旧代码**这条回退路径 ——
  它编译照样通过、只在真机上行为不同。自检同时验"认得出旧写法"与"不误伤新写法"。
- 顺带把权限徽标那条"点它弹说明"的判据改成钉**非废弃**写法(原来是 `promptAction.showToast(`)。

变异验证:把 `SettingsPage` 的一处改回全局写法 → 判红并点出文件。

验证:`hvigorw assembleHap` BUILD SUCCESSFUL;`npm test` 退出码 0(harmony-logic 20 条)。
This commit is contained in:
2026-09-14 14:05:35 +08:00
parent 36f3183bba
commit c6aaf8c468
8 changed files with 71 additions and 27 deletions

View File

@ -543,3 +543,17 @@ deb 也不必从 targets 里摘。已写进 `client/electron/BUILD.md`(含排
深色模式下的观感,都只有真机才看得到(模拟器需人在命令行启动)。已验证的是:
`hvigorw assembleHap` BUILD SUCCESSFUL、13 条跨端判据 + 4 条系统资源名判据全绿、
四种变异都能判红;`sys.*` 名字全部对着 SDK 名表核过(判据持续盯着)。
### 7.14 顺手扫掉 23 处废弃 API(全局 `promptAction.showToast`)
SDK 里写着:`@ohos.promptAction.d.ts` 的全局 `showToast` 标 `@deprecated since 18`,
替代品是 `UIContext.getPromptAction()`。仓库里原有 **23 处**这种调用(历史遗留,6 个页面)——
既然这一轮在按"用系统方案"整理鸿蒙侧,就一次扫干净:
`promptAction.showToast(...)` → `this.getUIContext().getPromptAction().showToast(...)`,
并清掉不再需要的 import。
**判据**:不得再用全局写法(负向断言,自检里同时验"认得出旧写法"且"不误伤新写法")。
这条防的不是这次,而是**新增页面照抄旧代码**这条最常见的回退路径 —— 它编译照样通过。
(同一批整理里还没做的:全局 `animateTo` 也要走 `getUIContext().animateTo(...)`,
放到动效那一期一起改 —— 那一期本来就是"自定义 transition → 系统 `curves`"。)