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

同一域名下多Android应用的App Link配置问题咨询

同一域名下不同路径对应不同Android应用的App Links配置方案

这个需求完全可以实现,你遇到的「同一时间仅一款应用能处理App Link」的问题,是因为配置细节或验证缓存导致的系统识别冲突。以下是具体的配置步骤和问题解决方法:

assetlinks.json的作用是验证域名与应用的归属关系,你需要在同一个文件中同时声明两个应用的授权信息,路径匹配规则无需在此文件中定义(由应用内的Intent Filter处理)。

示例配置:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.yourcompany.appA",
      "sha256_cert_fingerprints": ["App A的SHA256签名指纹"]
    }
  },
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.yourcompany.appB",
      "sha256_cert_fingerprints": ["App B的SHA256签名指纹"]
    }
  }
]
  • 确保文件放置在域名根目录的.well-known文件夹下,可通过https://mywebsite.com/.well-known/assetlinks.json直接访问
  • 签名指纹要与应用的构建签名一致(测试包和正式包指纹不同,需对应匹配)

二、应用内配置Intent Filter

每个应用需要在AndroidManifest.xml中配置独立的Intent Filter,指定匹配的路径前缀,并开启autoVerify触发系统自动验证。

Application A的Manifest配置

<activity android:name=".AppADeepLinkActivity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        
        <!-- 仅匹配mywebsite.com/applicationA路径下的所有链接 -->
        <data
            android:scheme="https"
            android:host="mywebsite.com"
            android:pathPrefix="/applicationA" />
    </intent-filter>
</activity>

Application B的Manifest配置

<activity android:name=".AppBDeepLinkActivity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        
        <!-- 仅匹配mywebsite.com/applicationB路径下的所有链接 -->
        <data
            android:scheme="https"
            android:host="mywebsite.com"
            android:pathPrefix="/applicationB" />
    </intent-filter>
</activity>

关键:两个应用的pathPrefix必须完全不重叠,确保系统能根据链接路径精准匹配到对应应用。

三、解决设备上的验证冲突问题

你遇到的「添加一款应用后另一款的支持被移除」,通常是以下原因导致的,可按对应方法解决:

  • 验证缓存残留:
    进入设备「设置」→「应用」→ 找到对应应用 →「打开方式」→「默认应用」,清除App Links的默认设置;也可以用adb命令强制重新验证:
    adb shell pm verify-app-links --re-verify com.yourcompany.appA com.yourcompany.appB
    
  • Intent Filter路径重叠:检查两个应用的pathPrefix是否有重叠(比如都配置了根路径/),这种情况系统会优先选择先验证的应用,导致另一款失效。
  • assetlinks.json配置错误:比如某个应用的包名或签名指纹写错,导致验证失败。可通过adb命令查看应用的验证状态:
    adb shell pm get-app-links com.yourcompany.appA
    
    输出中如果显示verified: true则说明验证成功,否则检查assetlinks.json的配置。

四、验证效果

  1. 确保两个应用都安装到测试设备上,且签名与assetlinks.json中的指纹一致
  2. 触发重新验证后,分别测试链接:
    • 点击https://mywebsite.com/applicationA/test应直接打开Application A
    • 点击https://mywebsite.com/applicationB/test应直接打开Application B

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:14:55