当前位置:首页 > 行业动态 > 正文

安卓应用链接服务器

核心概念与原理

安卓应用链接(App Links)是一种机制,允许应用通过自定义URL Scheme或HTTP URL直接打开应用内的特定页面,其核心目的是实现深度链接(Deep Linking),提升用户体验并减少中间跳转,主要依赖以下技术:

  1. Intent Filter:在应用的AndroidManifest.xml中声明可处理的URL模式。
  2. Asset Links文件:放置在服务器上的JSON文件,用于验证应用与域名的关联关系。
  3. 服务器配置:通过HTTP响应头或HTML文件声明应用链接关系。

配置步骤与关键点

配置Intent Filter

安卓应用链接服务器  第1张

AndroidManifest.xml中为目标Activity添加Intent-filter,支持以下两种协议:

  • HTTP/HTTPS URL(推荐):
    <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="https" android:host="yourdomain.com" />
    </intent-filter>
  • 自定义Scheme(如myapp://path):
    <data android:scheme="myapp" android:host="open" android:path="/path" />

生成并部署Asset Links文件

  • :JSON格式,声明应用包名与域名的关联。
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example.yourapp",
        "sha256_cert_fingerprints": ["your_cert_fingerprint"]
      }
    }]
  • 部署位置:上传至https://yourdomain.com/.well-known/assetlinks.json,确保可通过HTTPS访问。

服务器端验证(可选)

若需通过服务器动态验证链接,可在HTTP响应头中添加:

Link: <android_app://com.example.yourapp/path>; rel=alternate

或HTML <meta>标签:

<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-security-policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src ">
<meta name="theme-color" content="#ffffff">
<link rel="manifest" href="manifest.json">
<link rel="alternate" href="android-app://com.example.yourapp/path">

常见场景与解决方案

问题 解决方案
链接无法跳转到应用 检查assetlinks.json是否生效(可在线验证工具检测)。
确保URL与Intent Filter匹配。
HTTP与HTTPS冲突 必须使用HTTPS协议,且证书指纹需与assetlinks.json中的sha256_cert_fingerprints一致。
多Activity处理不同路径 AndroidManifest.xml中为不同路径声明多个Intent Filter,或在单一Activity中解析Intent数据。

测试与调试

  1. 本地测试:使用adb命令模拟链接:
    adb shell am start -a android.intent.action.VIEW -d "https://yourdomain.com/path"
  2. 在线验证工具:使用Android Asset Links Tool检查assetlinks.json有效性。

相关问题与解答

问题1:如何区分普通网页链接和App Link?

解答

  • App Link需满足以下条件:
    1. URL与应用的Intent Filter完全匹配。
    2. 服务器返回的assetlinks.json验证通过。
  • 若未安装应用,系统会提示用户选择浏览器或已安装的应用。

问题2:如何动态更新App Link配置?

解答

  1. 修改服务器文件:更新assetlinks.json或HTML文件中的链接声明。
  2. 重新签名应用:若证书变更,需更新sha256_cert_fingerprints
  3. 清除应用缓存:部分设备可能缓存旧配置,可手动清除应用数据或重启
0