添加 Android 应用链接

Android 应用链接是 HTTP URL,可将用户直接带到 Android 应用中的特定内容。Android 应用链接可以为您的应用带来更多流量,帮助您发现哪些应用内容使用最多,并使用户更容易查找和共享已安装应用中的内容。

要添加对 Android 应用链接的支持

  1. 在清单文件中创建意图过滤器。
  2. 向应用的活动添加代码以处理传入的链接。
  3. 将您的应用和网站关联到数字资产链接。

Android Studio 中的应用链接助手通过分步向导简化了此过程,如下所述。

有关应用链接的工作原理及其优势的更多信息,请阅读处理 Android 应用链接

添加意图过滤器

Android Studio 中的应用链接助手可以帮助您在清单文件中创建意图过滤器,并将网站上的现有 URL 映射到应用中的活动。应用链接助手还会在每个相应的活动中添加模板代码以处理意图。

要添加意图过滤器和 URL 处理,请按照以下步骤操作

  1. 选择工具 > 应用链接助手
  2. 点击打开 URL 映射编辑器,然后点击添加 ,位于URL 映射列表底部,以添加新的 URL 映射。
  3. 添加新 URL 映射的详细信息

    The App Links Assistant walks you through basic URL mapping

    图 1. 添加有关您网站链接结构的基本详细信息,以将 URL 映射到应用中的活动。

    1. 主机字段中输入您的网站的 URL。
    2. 为要映射的 URL 添加pathpathPrefixpathPattern

      例如,如果您有一个食谱共享应用,所有食谱都可以在同一个活动中使用,并且您对应的网站上的食谱都位于同一个/recipe目录中,请使用pathPrefix并输入/recipe。这样,URL http://www.recipe-app.com/recipe/grilled-potato-salad就会映射到您在后续步骤中选择的活动。

    3. 选择 URL 应将用户带到的活动
    4. 点击确定

    将显示 URL 映射编辑器窗口。应用链接助手会根据您的 URL 映射向AndroidManifest.xml文件添加意图过滤器,并在预览字段中突出显示更改。如果您想进行任何更改,请点击打开 AndroidManifest.xml以编辑意图过滤器。要了解更多信息,请参阅用于传入链接的意图过滤器

    主应用链接助手工具窗口还会显示AndroidManifest.xml文件中所有现有的深度链接,并允许您通过点击修复所有清单问题快速修复任何错误配置。

    The App Links Assistant lets you fix manifest misconfigurations.

    注意:要支持未来的链接而无需更新您的应用,请定义一个支持您计划添加的 URL 的 URL 映射。此外,请包含应用主屏幕的 URL,以便将其包含在搜索结果中。

  4. 要验证 URL 映射是否正常工作,请在检查 URL 映射字段中输入 URL。

    如果工作正常,则成功消息将显示您输入的 URL 映射到您选择的活动。

处理传入链接

验证 URL 映射是否正常工作后,添加逻辑以处理您创建的意图

  1. 从应用链接助手点击选择活动
  2. 从列表中选择一个活动,然后点击插入代码

应用链接助手会向您的活动添加代码,类似于以下内容

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    // ATTENTION: This was auto-generated to handle app links.
    val appLinkIntent: Intent = intent
    val appLinkAction: String? = appLinkIntent.action
    val appLinkData: Uri? = appLinkIntent.data
    ...
}

Java

@Override
void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    // ATTENTION: This was auto-generated to handle app links.
    Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();
    ...
}

此代码本身并不完整。您现在必须根据appLinkData中的 URI 执行操作,例如显示相应的内容。例如,对于食谱共享应用,您的代码可能如下所示

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    handleIntent(intent)
}

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val appLinkAction = intent.action
    val appLinkData: Uri? = intent.data
    if (Intent.ACTION_VIEW == appLinkAction) {
        appLinkData?.lastPathSegment?.also { recipeId ->
            Uri.parse("content://com.recipe_app/recipe/")
                    .buildUpon()
                    .appendPath(recipeId)
                    .build().also { appData ->
                        showRecipe(appData)
                    }
        }
    }
}

Java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...
  handleIntent(getIntent());
}

protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  handleIntent(intent);
}

private void handleIntent(Intent intent) {
    String appLinkAction = intent.getAction();
    Uri appLinkData = intent.getData();
    if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
        String recipeId = appLinkData.getLastPathSegment();
        Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
            .appendPath(recipeId).build();
        showRecipe(appData);
    }
}

将您的应用与您的网站关联

在为您的应用设置 URL 支持后,应用链接助手会生成一个数字资产链接文件,您可以使用它来将您的网站与您的应用关联

作为使用数字资产链接文件的替代方法,您可以在 Search Console 中关联您的网站和应用

如果您正在为您的应用使用Play 应用签名,则应用链接助手生成的证书指纹通常与用户设备上的指纹不匹配。在这种情况下,您可以在您的Play Console开发者帐户中,在发行 > 设置 > 应用签名下找到应用的正确数字资产链接 JSON 代码段。

要使用应用链接助手关联您的应用和网站,请从应用链接助手点击打开数字资产链接文件生成器,然后按照以下步骤操作

The App Links Assistant walks you through basic URL mapping

图 2. 输入有关您的网站和应用的详细信息以生成数字资产链接文件。

  1. 输入您的网站域名应用 ID
  2. 要在您的数字资产链接文件中包含对一键登录的支持,请选择支持在应用和网站之间共享凭据并输入您网站的登录 URL。这会将以下字符串添加到您的数字资产链接文件中,声明您的应用和网站共享登录凭据:delegate_permission/common.get_login_creds

  3. 指定签名配置或选择密钥库文件

    确保您为应用的发行版构建选择正确的发行版配置或密钥库文件,或为应用的调试版构建选择调试配置或密钥库文件。如果要设置生产构建,请使用发行版配置。如果要测试构建,请使用调试配置。

  4. 点击生成数字资产链接文件
  5. Android Studio 生成文件后,点击保存文件将其下载。
  6. assetlinks.json文件上传到您的网站,供所有人读取,网址为https://yoursite/.well-known/assetlinks.json

    重要:系统通过加密的 HTTPS 协议验证数字资产链接文件。确保assetlinks.json文件可以通过 HTTPS 连接访问,无论您的应用的意图过滤器是否包含https

  7. 点击链接和验证以确认您已将正确的数字资产链接文件上传到正确的位置。

应用链接助手可以验证应发布在您网站上的数字资产链接文件。对于清单文件中声明的每个域名,助手都会解析您网站上的文件,执行验证检查,并提供有关如何修复任何错误的详细说明。

了解有关通过数字资产链接文件将您的网站与您的应用关联的更多信息,请参阅声明网站关联

测试您的 Android 应用链接

要验证您的链接是否打开了正确的活动,请按照以下步骤操作

  1. 在应用链接助手,点击测试应用链接
  2. URL字段中输入要测试的 URL;例如,http://recipe-app.com/recipe/grilled-potato-salad
  3. 图 3.测试应用链接对话框显示正在测试的 URL 和成功消息。

  4. 点击运行测试

如果 URL 映射未正确设置或不存在,则测试应用链接对话框中 URL 下方会出现错误消息。否则,Android Studio 会在设备或模拟器中以指定的活动启动您的应用,而不会显示歧义对话框(“应用选择器”),并在应用链接测试对话框中显示成功消息,如图 3 所示。

如果 Android Studio 无法启动应用,则 Android Studio 的运行窗口中会出现错误消息。

要通过应用链接助手测试 Android 应用链接,您必须连接设备或提供运行 Android 6.0(API 级别 23)或更高版本的虚拟设备。有关更多信息,请阅读有关如何连接设备创建 AVD