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

Android Deep Link含&字符时参数截断问题求助

解决Android Deep Link多参数被截断的问题

嘿,这个问题我之前帮不少开发者搞定过,本质是转义字符处理不对加上Intent Filter的小细节没做好,咱们一步步来解决:

1. 先把链接里的分隔符改对

你现在用的&是HTML环境下的转义字符,但直接放到App Deep Link里,Android系统会把它当成参数值的一部分,而不是用来分隔多个参数的&。所以首先要把链接改成原始格式:
myapp://app.com/login-with-token?email=someEmail&token=sometoken

如果这个链接是从网页里生成的,记得不要对链接里的&做HTML转义,或者直接输出原始的&就行——浏览器会正确识别并把完整链接传给你的App。

2. 优化Manifest里的Intent Filter配置

你的现有配置其实能匹配路径,但为了让系统更精准地解析带多参数的链接,建议补充mimeType并缩小路径匹配范围(可选,但更规范):

<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="myapp" 
        android:host="app.com" 
        android:pathPrefix="/login-with-token"
        android:mimeType="text/plain"/> <!-- 加这个帮助系统正确识别链接类型 -->
</intent-filter>

3. 代码里正确提取所有参数

最后,确保你在接收Intent的Activity里,用正确的方法获取所有Query参数,别只取第一个:

// 在目标Activity的onCreate或者onNewIntent方法里
intent.data?.let { uri ->
    val email = uri.getQueryParameter("email")
    val token = uri.getQueryParameter("token")
    // 这里处理拿到的邮箱和token就行
}

测试小技巧

你可以用adb命令快速验证链接是否能被正确解析:

adb shell am start -W -a android.intent.action.VIEW -d "myapp://app.com/login-with-token?email=test@example.com&token=123456" com.your.package.name

内容的提问来源于stack exchange,提问作者Arkalyk Akash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:40:52