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

Android中打开带参数的Deep Link,如何获取缺失的URL参数?

Android Intent传递URL参数丢失的解决方法

你构造的带参数Intent链接intent://com.example/somePath?someVariableA=1#Intent;package=com.example;scheme=app;end;之所以丢失参数,是因为链接中的?被浏览器解析为锚点#的前置分隔符,导致参数部分未被识别为URL的一部分。可以通过以下方式解决:

  • 转义URL中的问号:将原URL里的?替换为URL转义符%3F,构造后的Intent链接应为:

    intent://com.example/somePath%3FsomeVariableA=1#Intent;package=com.example;scheme=app;end;
    
  • Android端解析参数:应用接收到Intent后,通过Uri对象的API提取参数,示例代码:

    Uri intentData = getIntent().getData();
    if (intentData != null) {
        String someVariableA = intentData.getQueryParameter("someVariableA");
        // 这里处理参数逻辑
    }
    
  • 验证Manifest中的Intent Filter配置:确保你的Intent Filter正确匹配带参数的路径,示例配置:

    <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="app"
            android:host="com.example"
            android:pathPrefix="/somePath" />
    </intent-filter>
    

转义后的%3F会被系统正确识别为URL的参数起始标记,这样Android就能完整解析包含参数的Uri了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:06:01