添加 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