Android App Links 配置

App Links 是 Android 官方提供的一种"通用链接"机制, 让 HTTPS 链接可以直接唤起对应的 App,而不是跳转浏览器,类似于iOS的Universal Links。

平台 名称 配置文件 功能
iOS Universal Links apple-app-site-association (AASA) 点击网页 → 打开 App
Android Aoo Links assetlinks.json 点击网页 → 打开 App

例如: https://xxx.com/callback/123

  • 如果设备上安装了 App → 自动打开 App;
  • 如果没安装 → 打开网页(优雅降级)。

当用户点击链接时,系统会验证:

  1. 链接的域名(如 xxx.com
  2. 对应域名下的 .well-known/assetlinks.json
  3. JSON 文件中是否声明了你的 App 包名 + 签名指纹

验证通过后,Android 会在系统中记录「此域名可由该 App 直接处理」。

三、配置步骤

1.在你的服务器添加assetlinks.json

在根目录下添加,路径为 .well-known/assetlinks.json

assetlinks.json 内容为:

json 复制代码
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "your_package_name",
      "sha256_cert_fingerprints": [
        "xxxxxx"  // 签名
      ]
    }
  },
  ]

要求:

  • 必须是 HTTPS;
  • 不能重定向
  • header中必须是ontent-Type: application/json;
  • 文件路径必须是 .well-known/assetlinks.json

2.在 AndroidManifest.xml 中添加 <intent-filter>

找到你的主 Activity

xml 复制代码
<activity
    android:name=".ui.activity.MainActivity"
    android:exported="true"
    android:launchMode="singleTop"
    android:theme="@style/LaunchTheme">

    <!-- 普通启动 -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>

    <!-- App Links -->
    <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"/>
        <data android:scheme="https"
              android:host="xxx.com"
              android:pathPrefix="/callback"/>
    </intent-filter>

</activity>

说明:

  • android:autoVerify="true" 会让系统自动去验证 assetlinks.json;
  • android:host 必须和网站域名一致;
  • android:pathPrefix 指定可唤起的路径;
  • 可配置多个 <intent-filter> 来匹配不同路径。

更快捷的配置

Android studio 提供了更快捷的配置:Tools → App Links Assistant → Create AppLink; 一共有四部,按照流程即可配置完成。

相关推荐
Asize3 分钟前
Ajax 入门:从 JSON 序列化到 XMLHttpRequest
前端·javascript·前端框架
林希_Rachel_傻希希3 分钟前
react hooks速通笔记
前端
Csvn10 分钟前
🚨 组件卸载后还在 setState?一个被你忽视的内存泄漏和报错根源
前端
乘风gg22 分钟前
AI GenUI 真正落地时,前端到底要做什么?
前端·ai编程·cursor
恋猫de小郭38 分钟前
苹果 AirPods 协议,Android 也可以使用完整版 AirPods 能力
android·前端·flutter
IT_陈寒42 分钟前
JavaScript的默认参数挖坑实录,我掉进去了
前端·人工智能·后端
kyriewen13 小时前
别再 console.log 了:5 个 Chrome DevTools 调试技巧,用过就回不去了
前端·javascript·面试
IT_陈寒15 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
DigitalOcean16 小时前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
星始流年16 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent