处理 Android 应用链接

Deep links handle content URIs. Web links handle the
         HTTP and HTTPS schemes. Android App Links handle the autoVerify
         attribute.
图 1. 深层链接、网页链接和 Android 应用链接的功能。

用户在设备上点击链接只有一个目标:到达他们想看到的内容。作为开发者,您可以设置 Android 应用链接,将用户直接带到应用中链接的特定内容,从而绕过应用选择对话框(也称为消除歧义对话框)。由于 Android 应用链接利用 HTTP URL 并与网站关联,因此未安装您的应用的用户会直接转到您网站上的内容。

在实现 Android 应用链接之前,了解您可以在 Android 应用中创建的不同类型的链接非常重要:深层链接、网页链接和 Android 应用链接。图 1 显示了这些链接类型之间的关系,以下部分将更详细地描述每种链接类型。

深层链接 是任何方案的 URI,可将用户直接带到应用的特定部分。要创建深层链接,请添加 意图过滤器 以将用户引导到应用中的正确活动,如下面的代码片段所示

<activity
    android:name=".MyMapActivity"
    android:exported="true"
    ...>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="geo" />
    </intent-filter>
</activity>

当用户点击深层链接时,可能会出现消除歧义对话框。此对话框允许用户选择多个应用(包括您的应用)中可以处理给定深层链接的一个应用。图 2 显示了用户点击地图链接后出现的对话框,询问是否要在 Maps 或 Chrome 中打开链接。

图 2. 消除歧义对话框

网页链接 是使用 HTTP 和 HTTPS 方案的深层链接。在 Android 12 及更高版本上,点击网页链接(即不是 Android 应用链接)始终会在网络浏览器中显示内容。在运行早期 Android 版本的设备上,如果您的应用或用户设备上安装的其他应用也可以处理网页链接,则用户可能不会直接转到浏览器。相反,他们会看到类似于图 2 中显示的消除歧义对话框。

以下代码片段显示了网页链接过滤器的示例

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="http" />
    <data android:host="myownpersonaldomain.com" />
</intent-filter>

Android 应用链接(在 Android 6.0(API 级别 23)及更高版本上可用)是使用 HTTP 和 HTTPS 方案并包含 autoVerify 属性的网页链接。此属性允许您的应用将自身指定为给定链接类型的默认处理程序。因此,当用户点击 Android 应用链接时,如果已安装您的应用,则会立即打开您的应用,不会出现消除歧义对话框。

如果用户不希望您的应用成为默认处理程序,他们可以从应用设置中覆盖此行为。

以下代码片段显示了 Android 应用链接过滤器的示例

<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" />

    <!-- Do not include other schemes. -->
    <data android:scheme="http" />
    <data android:scheme="https" />

    <data android:host="myownpersonaldomain.com" />
</intent-filter>

Android 应用链接提供以下好处

  • 安全且特定:Android 应用链接使用链接到您拥有的网站域的 HTTP URL,因此其他应用无法使用您的链接。Android 应用链接的要求之一是您必须通过我们的网站关联方法之一来验证您对域的所有权。
  • 无缝的用户体验:由于 Android 应用链接对网站和应用中的相同内容使用单个 HTTP URL,因此未安装应用的用户只需转到您的网站,而不是应用——没有 404 错误,也没有其他错误。
  • Android 即时应用支持:使用 Android 即时应用,您的用户无需安装即可运行您的 Android 应用。要向您的 Android 应用添加即时应用支持,请设置 Android 应用链接并访问 g.co/InstantApps
  • 吸引 Google 搜索用户: 用户可以通过点击移动浏览器中的 Google 网址、Google 搜索应用、Android 屏幕搜索或 Google 助理中的网址,直接在您的应用中打开特定内容。

创建 Android 应用链接的常规步骤如下所示

  1. 创建指向应用中特定内容的深度链接: 在您的应用清单中,为您的网站 URI 创建意图过滤器,并配置您的应用以使用意图中的数据将用户发送到应用中的正确内容。在 创建指向应用内容的深度链接 中了解更多信息。
  2. 添加深度链接的验证: 配置您的应用以请求应用链接的验证。然后,通过 Google Search Console 在您的网站上发布数字资产链接 JSON 文件以验证所有权。在 验证应用链接 中了解更多信息。

作为上述链接文档的替代方案,Android 应用链接助手 是 Android Studio 中的一个工具,可引导您完成创建 Android 应用链接所需的每个步骤。

更多信息,请参阅以下资源

管理和验证 Android 应用链接

您可以通过 Play Console 管理和验证深度链接。应用成功上传后,仪表板(位于“增长”>“深度链接”下)将显示深度链接和配置错误的概述。

图 3. 深度链接 Play Console 仪表板

仪表板提供以下部分

  • 整体深度链接配置的亮点
  • 清单文件中声明的所有域名
  • 按路径分组的网页链接
  • 具有自定义方案的链接
这些部分中的每一个都显示深度链接状态,并在发生错误时提供修复方法。

有关仪表板的更多信息,请参阅 本指南