要正确提供 iOS 和 Android App Link 文件,您需要同时配置网站和移动应用程序。这包括在 Web 服务器上创建并托管特定文件,以及在 iOS 和 Android 项目中进行相应的配置。
iOS 通用链接
对于 iOS,您需要设置通用链接(Universal Links),这允许用户点击指向您网站的链接后,无缝跳转至已安装的应用程序。
-
创建
apple-app-site-association文件:- 创建一个名为
apple-app-site-association(不带.json扩展名)。 - 该文件声明了您的应用可以处理哪些 URL。
- 该文件应包含一个
applinks字典。在applinks中,包含一个空的apps数组和一个details数组。details数组中的每个对象应指定appID(您的 Apple Team ID 后跟应用的 Bundle Identifier)以及一个paths。您可以使用通配符(*和?) 进行路径匹配。 apple-app-site-association内容示例:json { "applinks": { "apps": [], "details": [ { "appID": "YOUR_TEAM_ID.com.yourcompany.yourapp", "paths": [ "/path/to/content/*", "/another/path/*", "NOT /path/to/exclude" ] } ] } }
- 创建一个名为
-
将文件托管在您的 Web 服务器上:
- 该
apple-app-site-association文件必须托管在域名的根目录下,或位于.well-known子目录内(例如https://yourdomain.com/apple-app-site-association或https://yourdomain.com/.well-known/apple-app-site-association). - 该文件必须通过HTTPS并使用有效的SSL证书进行服务。
- 该文件必须可直接访问,且不包含任何 HTTP 重定向(301 或 302)。
- 该文件的 MIME 类型应为
application/json. - 未压缩文件的大小不应超过 128 KB。
- 如果您支持多个域名或子域名,每个域名都需要自己的
apple-app-site-association文件。
- 该
-
配置您的 iOS 应用:
- 在 Xcode 中,为您的项目启用“关联域名”功能。
- 将应用将支持的域名添加到“关联域名”列表中,并在前面加上
applinks:(例如:applinks:yourdomain.com). - 在应用的
AppDelegate或SceneDelegate中实现必要的方法,以处理传入的通用链接 URL。
Android 应用链接
对于 Android,应用链接提供了类似的无缝体验,允许经过验证的链接直接在应用中打开,而无需显示消歧对话框。
-
创建
assetlinks.json文件:- 创建一个名为
assetlinks.json. - 该文件在您的网站与 Android 应用之间建立了可信关联。
- 该文件应包含一个 JSON 数组,其中包含一个指定
relation(例如,delegate_permission/common.handle_all_urls),target(包括namespace为android_app,即您的应用的package_name,以及sha256_cert_fingerprints应用的签名证书)。 - 您可以使用
keytool命令获取,或者如果您使用 Play 应用签名,也可从 Google Play 控制台获取。 assetlinks.json内容示例:json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.yourcompany.yourapp", "sha256_cert_fingerprints": ["AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF"] } }]
- 创建一个名为
-
将文件托管在您的 Web 服务器上:
- 该
assetlinks.json文件必须托管在https://yourdomain.com/.well-known/assetlinks.json. - 该文件必须通过带有有效 SSL 证书的 HTTPS 协议提供。
- 该文件必须可直接访问,且不包含任何 HTTP 重定向(301 或 302)。
- 该文件的 MIME 类型应为
application/json. - 如果您的应用链接支持多个主机域名,您必须在每个域名上发布该
assetlinks.json文件。
- 该
-
配置您的 Android 应用:
- 添加一个
<intent-filter>到应用的AndroidManifest.xml中添加,用于处理您希望处理的 URL。 - 包含
android:autoVerify="true"。<intent-filter>中。这会指示 Android 验证主机域名。 - 该
<intent-filter>应包含ACTION_VIEW,BROWSABLE,以及DEFAULT类别。 - 指定
<data>方案(例如https)、主机以及任何可选的路径前缀或模式。 - 示例
AndroidManifest.xmlintent-filter:xml <activity android:name=".MainActivity"> <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="yourdomain.com" android:pathPrefix="/path/to/content" /> </intent-filter> </activity> - 处理传入的
Intent,从 URL 中提取数据并导航至相应内容。
- 添加一个
通用最佳实践
- 对于 iOS 通用链接和 Android 应用链接,HTTPS 都是强制要求的。
- 提供这些关联文件时,请避免重定向。
- 在真实设备上进行彻底测试,并使用验证工具(例如,Google 的 Android 数字资产链接 API 以及各种 iOS AASA 文件在线验证器)以确保设置正确。
- 请确保您拥有正在配置应用链接的域名。