深链路路由与参数校验

鸿蒙问答专区
问题描述:我这边落地活动页深链时,外部可能携带一串复杂参数(比如加密 token、回跳地址等),既要在应用冷启动时正确路由到目标 Ability,又要对参数做签名校验防止被篡改。大家在项目里通常如何设计深链解析、鉴权与兜底跳转的完整流程?
相关代码:
// 入口 ability 的 onCreate/onNewWant 中解析参数
function handleDeepLink(want: any) {
const q = want.parameters || {};
if (!q.sig || !verifySig(q)) {
router.pushUrl({ url: 'pages/error' }); // 签名非法兜底
return;
}
router.pushUrl({ url: 'pages/activity', params: { campaignId: q.id } });
}
您需要先 登录 才能评论/回答

全部评论(1)
别人我不太清楚,不过我们项目组一般是这么做的。外部唤起→参数解析→校验鉴权→路由 / 兜底;首先就是深链配置:定义自定义 Scheme,在配置文件中注册可被外部唤起的 Ability;然后进行参数接收:区分冷启动(EntryAbility 初始化时)和热启动(目标 Ability 已存在)场景接收参数;接着签名校验:对参数进行签名验证,防止篡改;然后是权限鉴权:验证 token 有效性(如调用后端接口);最后路由分发:根据参数指定的目标页面,跳转至对应 Ability;如果有异常就需要进行异常兜底:任何环节失败时,跳转至默认页面(如首页)。

2025-09-15 08:54:13