要在 iOS 上启用通用链接 (Universal Links) 和 Android 上的应用链接 (App Links),您需要在 Web 服务器上托管两个特定的 JSON 文件:
- iOS 的
apple-app-site-association(AASA): 此文件告知 iOS 您网站上的哪些路径应由您的 iOS 应用处理。 - 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-associationhttps://yourdomain.com/apple-app-site-association(现在较少使用)
- HTTPS: 文件必须通过 HTTPS 提供服务。
- MIME 类型:
Content-Type标头应为application/json或application/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/json或application/json; charset=utf-8。
- 位置: 文件必须托管在
-
验证: Android 设备会检查此文件以验证关联。您可以使用 Google Asset Link API Validator 来检查您的
assetlinks.json文件。
3. 服务器配置最佳实践
- 静态文件服务: 配置您的 Web 服务器(例如 Nginx、Apache 或您的云提供商的静态托管服务)以直接提供这些 JSON 文件。
- 缓存: 请谨慎处理这些文件的缓存。虽然缓存可以提高性能,但如果您更新了应用或网站关联,它也可能延迟更改的传播。通常建议为这些特定文件设置较短的缓存时间或禁用缓存。
- 内容类型: 确保设置了正确的
Content-Type标头。 - 可访问性: 确保这些文件可以公开访问,无需身份验证。
通过正确托管这些关联文件,您可以启用通用链接和应用链接,为用户提供更顺畅、更集成的体验。