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

Android API 33自定义Scheme深度链接无法正常工作求助

Android自定义Scheme扫码无法唤起应用的问题排查

你配置的自定义Scheme在ADB命令下正常触发应用,但扫码及浏览器打开时仅在Chrome中打开页面,可从以下几个方向排查:

1. 补充Android 12+的链接验证配置

从Android 12(API 31)开始,Chrome等主流浏览器会要求应用完成链接身份验证,才会唤起自定义Scheme的应用,需完成两步配置:

  • 给intent-filter添加android:autoVerify="true"属性:
<intent-filter android:label="Deep Link" android:autoVerify="true">
    <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="${applicationId}"
        android:pathPrefix="/story" />
</intent-filter>
  • 在项目的src/main/assets/.well-known/目录下创建assetlinks.json文件,填写对应应用的签名信息(替换package_name和sha256_cert_fingerprints):
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.mycoolapp.debug",
    "sha256_cert_fingerprints": ["你的应用SHA256签名指纹"]
  }
}]

签名指纹可通过以下命令获取:

keytool -list -v -keystore 你的签名文件路径 -alias 签名别名

2. 检查浏览器的链接处理规则

  • 部分浏览器会对未验证的自定义Scheme直接拦截,或用户之前设置了默认用浏览器打开该类型链接。可进入浏览器设置,找到「应用」或「默认应用」选项,清除该链接的默认打开方式,重新选择你的应用。
  • 如果扫码后是先打开网页再跳转自定义Scheme,需确保网页内的跳转是用户主动触发(比如点击按钮),Chrome会拦截页面加载时自动触发的Scheme跳转。

3. 确认扫码链接的匹配性

确保二维码中的链接完全符合配置的规则:

  • Scheme必须为myapp
  • Host必须是你的应用ID(如com.mycoolapp.debug)
  • Path必须以/story开头

4. 验证应用签名一致性

assetlinks.json中的SHA256指纹必须和当前安装的应用签名完全一致,debug包和release包的签名通常不同,需对应修改配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:12:23