JianFeeeee
423ff9fbb2
跨端: feat(推送客户端) 收尾两处接线(pi 邮件 66bbd929 分工)+ 换账号补报
`PushService.ets` 与 `pendingRoute` 都早就写好了,但**没人调用/没人读** ——
而"写好了"与"接上了"是两件事:ArkTS 只编译可达模块,往一个无人 import 的
文件里放必然报错的类型错误,`assembleHap` 照样 BUILD SUCCESSFUL
(pi 与我各复现过一个方向)。这次补的是**边**,不是点。
① 登录成功补报(LoginPage):`EntryAbility.onCreate` 那次在**登录之前**跑,
那时 `ApiClient` 还没有 token ⇒ 服务端 401,而 `reportToken` 的失败是静默的
⇒ "启动时报过"不等于"这个账号登记过"。补三条登录路径,一条都不能漏:
快速路径(已有账号直接进主界面,老用户走这条)/ tryRestore / doLogin。
② 换账号补报(SettingsPage.switchTo,**我加的第三处**):服务端语义是同一
token 换账号**转移**而非并存 ⇒ 新账号其实没登记过。幂等标记按
`accountKey|token` 存,所以这里调一次必然重发,不会被"我报过"挡掉。
不补的症状:切完账号,通知仍推给上一个账号。
③ pendingRoute 消费端(MainPage.CommPage):`EntryAbility` 已把通知 data
解析成 `pendingRoute`(冷启 onCreate / 热启 onNewWant 都写了),
**但没有任何东西读它** ⇒ 点通知只拉起 App、停在列表页。
在 CommPage 消费(详情页是这个 Navigation 的 navPathStack 上的路由,
栈只有它持有),消费后**立刻清空**(它是"待处理"不是"当前页",
不清则返回列表再进来会被反复跳走)。
判据:`harmony-push.test.mjs` 15 → 18 条,三条新判据钉的就是上面这三条边,
**三条都做了变异验证**(各自删掉对应接线即红、恢复即绿)。
`LoginPage` 那条数**恰好 3 处**调用:少了快速路径=老用户永远不补报,
多了要问清是哪条路径。
编译验证(不是"命令成功",是"它真读了这个文件"):三处改动各植入一次必然
类型错误 ⇒ BUILD FAILED 且 `At File:` 指到**新代码那一行**(MainPage:1173 /
LoginPage:108 / SettingsPage:456),恢复后 BUILD SUCCESSFUL。
产物侧证:`modules.abc` 里能查到 `consumePendingRoute`(2) / `reportPushToken`(2)。
2026-09-17 19:03:14 +08:00
..
2026-09-14 15:41:52 +08:00
2026-09-15 12:09:37 +08:00
2026-09-17 19:00:11 +08:00
2026-09-15 07:46:54 +08:00
2026-09-15 11:58:19 +08:00
2026-09-14 16:21:27 +08:00
2026-09-15 11:17:23 +08:00
2026-09-17 19:00:11 +08:00
2026-09-14 16:59:16 +08:00
2026-09-15 13:55:01 +08:00
2026-09-14 17:33:05 +08:00
2026-09-15 12:55:25 +08:00
2026-09-15 13:41:50 +08:00
2026-09-14 17:36:02 +08:00
2026-09-16 08:06:36 +08:00
2026-09-15 12:22:23 +08:00
2026-09-17 17:43:03 +08:00
2026-09-17 18:43:00 +08:00
2026-09-17 18:44:36 +08:00
2026-09-15 12:06:15 +08:00
2026-09-15 13:46:56 +08:00
2026-09-15 12:10:49 +08:00
2026-09-15 12:06:15 +08:00
2026-09-17 18:44:36 +08:00
2026-09-17 18:44:36 +08:00
2026-09-15 12:06:15 +08:00
2026-09-16 08:29:24 +08:00
2026-09-17 19:03:14 +08:00
2026-09-17 18:43:00 +08:00
2026-09-14 16:21:27 +08:00
2026-09-17 18:44:36 +08:00
2026-09-14 15:11:47 +08:00
2026-09-15 08:45:54 +08:00
2026-09-15 07:46:54 +08:00
2026-09-14 17:33:05 +08:00
2026-09-17 19:03:14 +08:00
2026-09-14 16:21:27 +08:00