You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Safe Args创建DeepLink后跳转错误页面的技术咨询

解决Deeplink跳转错误页面的问题

针对你遇到的Deeplink跳转错误页面的问题,结合你提供的代码,从以下几个方面排查修复:

1. 修正Deeplink的URI格式

你当前的URI中包含多余的/?,这可能导致导航组件无法正确匹配目标页面。将URI修改为:

<deepLink
    android:id="@+id/deeplink"
    app:uri="example://receipt/payment?status={transactionStatus}&amp;trace_id={traceNumber}" />

路径部分到payment即可,参数直接通过?拼接,不需要额外的斜杠分隔。

2. 验证参数类型匹配

你的transactionStatus是boolean类型,注意:

  • 测试Deeplink时,status参数必须传入小写的true或false字符串(如status=true),导航组件才能正确解析为boolean值;
  • 禁止传入非布尔值的参数内容,否则可能因解析失败触发错误跳转。

3. 检查导航图的匹配优先级

如果你的导航图中存在其他Deeplink,确保当前Deeplink的URI模式更具体,避免被更宽泛的URI优先匹配。例如,如果存在example://receipt/{page}这类模糊匹配的Deeplink,会优先于你当前的具体路径匹配,导致跳错页面。需将更具体的Deeplink放在导航图的靠前位置,或调整URI模式的唯一性。

4. 确认Manifest中的Intent Filter配置

确保目标页面所在Activity的Intent Filter正确匹配Deeplink的scheme、host和路径:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data
        android:scheme="example"
        android:host="receipt"
        android:pathPrefix="/payment" />
</intent-filter>

pathPrefix需与Deeplink的路径部分一致,避免因路径不匹配导致跳转错误。

使用ADB命令直接测试Deeplink,排除第三方应用或浏览器的解析问题:

adb shell am start -W -a android.intent.action.VIEW -d "example://receipt/payment?status=true&trace_id=abc123" com.your.package.name

替换com.your.package.name为你的应用包名,观察是否能正确跳转到目标页面。

内容的提问来源于stack exchange,提问作者Sajad Hosseini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:10:50