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

Android开发中如何从URL提取锚点部分的code参数

问题根因

Uri.getQueryParameter() 仅能解析 URI 中?符号之后的标准查询参数,你提供的 URI 中code参数存放在#符号之后的片段标识符(Hash 部分),不属于标准查询参数范围,因此无法直接获取。

正确实现代码

方案 1:复用 Uri 工具类解析(推荐)

先提取片段内容,再模拟为查询参数解析:

val uri: Uri = Uri.parse(url)
val fragment = uri.fragment ?: return // 无片段内容直接返回
// 将片段内容作为查询参数构造临时Uri对象
val fragmentParams = Uri.Builder().query(fragment).build()
val code = fragmentParams.getQueryParameter("code")
// 此时code即为目标值:d5215173-2be3-4491-bf2a-d9d039a50e97

方案 2:纯字符串拆分实现(无依赖)

val hashContent = url.substringAfterLast('#', "")
val paramPairs = hashContent.split('&')
var code: String? = null
for (pair in paramPairs) {
    val keyValue = pair.split('=', limit = 2)
    if (keyValue.size == 2 && keyValue[0] == "code") {
        code = keyValue[1]
        break
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:18:01