Android 应用链接
编辑页面
了解如何配置 Android 应用链接,以便通过标准网页 URL 打开您的 Expo 应用。
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
要为你的应用配置 Android App Links,你需要:
- 在项目的 app 配置中添加
intentFilters并将autoVerify设置为true - 设置双向关联以验证你的网站和原生应用

配置带有 autoVerify 的 intent filter,设置你的网站和应用之间的双向关联,并验证 Android 应用链接。
将 intentFilters 添加到 app 配置中
通过添加 android.intentFilters 属性并将 autoVerify 属性设置为 true 来配置你的 app 配置。指定 autoVerify 是 Android App Links 正常工作的必要条件。
下面的示例展示了一个基础配置,它允许你的应用在标准 Android 对话框中显示为处理指向 webapp.io 域的任何链接的选项。它还使用常规的 https scheme,因为 Android App Links 与 标准深度链接 不同。
{ "expo": { "android": { "intentFilters": [ { "action": "VIEW", "autoVerify": true, "data": [ { "scheme": "https", "host": "*.webapp.io", "pathPrefix": "/records" } ], "category": ["BROWSABLE", "DEFAULT"] } ] } } }
设置双向关联
要在网站和 Android 应用之间设置双向关联,你需要以下内容:
- 网站验证: 这需要在 /.well-known 目录中创建一个 assetlinks.json 文件,并将其托管在目标网站上。此文件用于验证从给定链接打开的应用是否为正确的应用。
- 原生应用验证: 这需要某种引用目标网站域名(URL)的代码签名。
创建 assetlinks.json 文件
1
为网站验证创建一个 assetlinks.json 文件(也称为 数字资产链接 文件),位置为 /.well-known/assetlinks.json。此文件用于验证针对给定链接打开的应用。
如果你使用 Expo Router 来构建网站(或者使用任何其他现代 React 框架,例如 Remix、Next.js 等),请在 public/.well-known/assetlinks.json 创建 assetlinks.json。对于旧版 Expo webpack 项目,请在 web/.well-known/assetlinks.json 创建该文件。
2
从 app 配置中的 android.package 下获取 package_name 的值。
3
从应用的签名证书中获取 sha256_cert_fingerprints 的值。如果你使用 EAS Build 来构建 Android 应用,在创建构建后:
- 运行
eas credentials -p android命令,并选择构建配置文件以获取其指纹值。 - 复制
SHA256 Fingerprint下列出的指纹值。
从 Google Play Console 获取 SHA256 证书指纹的替代方法
如果你没有使用 EAS 来管理代码签名,你可以通过手动构建并将应用提交到 Google Play Console 来查找 sha256_cert_fingerprints:
- 在 Google Play Console 的仪表板中,进入 Release > Setup > App Signing。
- 找到适用于你应用的正确 Digital Asset Links JSON 片段。
- 复制看起来像
14:6D:E9:83...的值,并将其粘贴到你的 public/.well-known/assetlinks.json 文件中的sha256_cert_fingerprints下。
4
将 package_name 和 sha256_cert_fingerprints 添加到 assetlinks.json 文件中:
[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ // 支持为不同的应用和密钥添加多个指纹 "14:6D:E9:83:51:7F:66:01:84:93:4F:2F:5E:E0:8F:3A:D6:F4:CA:41:1A:CF:45:BF:8D:10:76:76:CD" ] } } ]
你可以向sha256_cert_fingerprints数组中添加多个指纹,以支持你应用的不同变体。有关更多信息,请参阅 Android 关于如何声明网站关联的文档。
托管 assetlinks.json 文件
使用与你的域名对应的 web 服务器托管 assetlinks.json 文件。此文件必须以 application/json 内容类型提供,并可通过 HTTPS 连接访问。通过在地址栏中输入完整 URL 来验证浏览器是否可以访问此文件。
原生应用验证
在 Android 设备上安装应用以触发 Android 应用验证 流程。
当你的应用已打开后,请参阅 处理进入应用的链接 了解如何处理传入链接并向用户显示其请求的内容。
调试
Expo CLI 允许你在不部署网站的情况下测试 Android App Links。利用 --tunnel 功能,你可以将开发服务器转发到一个公开可用的 HTTPS URL。
1
将环境变量 EXPO_TUNNEL_SUBDOMAIN=my-custom-domain 设置为你在开发期间使用的唯一字符串 my-custom-domain。这可以确保你的 tunnel URL 在开发服务器重启之间保持一致。
2
按照上文所述在 app 配置中添加 intentFilters。将 host 值替换为 Ngrok URL:my-custom-domain.ngrok.io。
3
使用 --tunnel 标志启动你的开发服务器:
- npx expo start --tunnel4
在你的设备上编译开发构建:
- npx expo run:android5
使用以下 adb 命令启动 intent activity,并在你的应用中打开链接,或者在设备的 web 浏览器中输入自定义域名链接。
- adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://my-custom-domain.ngrok.io/" <your-package-name>故障排查
以下是一些在实现 Android App Links 时帮助你排查问题的常见建议:
- 确保你的网站通过 HTTPS 提供服务,并且内容类型为
application/json - 验证 Android 应用链接
- Android 验证可能需要 20 秒或更长时间才会生效,因此请确保等待其完成。
- 如果你更新了网页文件,请重新构建原生应用,以触发供应商端(Google)的服务器更新