要在 iOS 上启用通用链接 (Universal Links) 和 Android 上的应用链接 (App Links),您需要在 Web 服务器上托管两个特定的 JSON 文件:

要在 iOS 上启用通用链接 (Universal Links) 和 Android 上的应用链接 (App Links),您需要在 Web 服务器上托管两个特定的 JSON 文件:

Intermediate

要在 iOS 上启用通用链接 (Universal Links) 和 Android 上的应用链接 (App Links),您需要在 Web 服务器上托管两个特定的 JSON 文件:

  1. iOS 的 apple-app-site-association (AASA): 此文件告知 iOS 您网站上的哪些路径应由您的 iOS 应用处理。
  2. Android 的 assetlinks.json 此文件告知 Android 您网站上的哪些路径应由您的 Android 应用处理。

正确托管这些文件对于实现无缝的深度链接至关重要。

1. 托管 iOS 的 apple-app-site-association (AASA) 文件

  • 文件内容: AASA 文件是一个 JSON 文件,用于将您网站的路径映射到您的应用。常见的结构如下所示:

    json { "applinks": { "apps": [], "details": [ { "appID": "TEAM_ID.com.yourcompany.yourapp", "paths": [ "/app/*", "/links/to/content/*", "*" ] } ] } } * 将 TEAM_ID.com.yourcompany.yourapp 替换为您的应用的唯一标识符(Team ID 后跟您的应用包 ID)。 * paths 数组指定您网站上的哪些 URL 路径应由应用处理。"*" 表示所有路径。

  • 托管要求:

    • 位置: 文件必须托管在域名的根目录或 .well-known 目录中。例如:
      • https://yourdomain.com/.well-known/apple-app-site-association
      • https://yourdomain.com/apple-app-site-association (现在较少使用)
    • HTTPS: 文件必须通过 HTTPS 提供服务。
    • MIME 类型: Content-Type 标头应为 application/jsonapplication/json; charset=utf-8
    • 无重定向: AASA 文件本身不应被重定向。
  • 验证: iOS 设备在安装您的应用时会下载此文件。您可以使用 Apple Validation Tool 或直接在 Safari 中访问 URL 来测试其可访问性。

2. 托管 Android 的 assetlinks.json 文件

  • 文件内容: assetlinks.json 文件包含有关您的应用及其关联网站的信息。

    json [ { "relation": [ "delegate_permission/common.handle_all_urls" ], "target": { "namespace": "android.app", "package_name": "com.yourcompany.yourapp", "sha256_cert_fingerprints": [ "YOUR_APP_SHA256_FINGERPRINT" ] } } ] * 将 com.yourcompany.yourapp 替换为您的应用包名。 * 将 YOUR_APP_SHA256_FINGERPRINT 替换为您的应用签名证书的 SHA256 指纹(您可以从密钥库或构建工具中获取)。

  • 托管要求:

    • 位置: 文件必须托管在 https://yourdomain.com/.well-known/assetlinks.json.well-known 路径是必需的。
    • HTTPS: 文件必须通过 HTTPS 提供服务。
    • MIME 类型: Content-Type 标头应为 application/jsonapplication/json; charset=utf-8
  • 验证: Android 设备会检查此文件以验证关联。您可以使用 Google Asset Link API Validator 来检查您的 assetlinks.json 文件。

3. 服务器配置最佳实践

  • 静态文件服务: 配置您的 Web 服务器(例如 Nginx、Apache 或您的云提供商的静态托管服务)以直接提供这些 JSON 文件。
  • 缓存: 请谨慎处理这些文件的缓存。虽然缓存可以提高性能,但如果您更新了应用或网站关联,它也可能延迟更改的传播。通常建议为这些特定文件设置较短的缓存时间或禁用缓存。
  • 内容类型: 确保设置了正确的 Content-Type 标头。
  • 可访问性: 确保这些文件可以公开访问,无需身份验证。

通过正确托管这些关联文件,您可以启用通用链接和应用链接,为用户提供更顺畅、更集成的体验。