为即时应用创建应用链接

Android 即时应用是无需安装即可运行的小型应用版本。用户只需点击 URL 即可启动您的应用,而无需安装 APK。因此,所有即时应用都需要通过使用 Android 应用链接声明的 URL 进行访问。本页介绍如何为您的Android 即时应用使用 Android 应用链接。

首先,以下是您应该已经了解的应用链接的摘要。

  • 当您为应用中允许用户通过 URL 链接直接跳转到应用中特定屏幕的 Activity 创建 Intent 过滤器时,这称为“深层链接”。但是,其他应用也可以声明类似的 URL Intent 过滤器,因此系统可能会询问用户要打开哪个应用。要创建这些深层链接,请阅读创建指向应用内容的深层链接
  • 当您在与应用 HTTP 深层链接对应的网站上发布 assetlinks.json 文件时,您就验证了您的应用是这些 URL 的真实所有者。因此,您已将深层链接转换为 Android 应用链接,这确保了当用户点击此类 URL 时,您的应用会立即打开。要创建应用链接,请阅读验证 Android 应用链接

因此,Android 应用链接只是经过您的网站验证为所有者的 HTTP 深层链接,这样用户就不需要选择打开哪个应用。有关更具体的描述,请参阅深层链接和应用链接之间的区别

但是,在这两种情况下,用户都必须已经安装了您的应用。如果用户点击了您网站的某个链接但他们没有安装您的应用(并且没有其他应用处理该 URL Intent),则该 URL 将在网络浏览器中打开。因此,创建即时应用解决了这一部分问题——它允许用户只需点击一个 URL 即可打开您的应用,即使他们没有安装您的应用。

当最终用户在 Google 搜索您的应用时,Google 搜索会显示一个带有“即时”徽章的 URL。

如果您已经遵循了创建指向应用内容的深层链接验证 Android 应用链接的指南,那么您已经完成了使应用链接与即时应用配合使用所需的大部分工作。在使用即时应用的应用链接时,只需注意以下几条额外规则:

  • 您的即时应用中用作应用链接的所有 Intent 过滤器都必须同时支持 HTTP 和 HTTPS。例如:

    <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" android:host="www.example.com" />
        <data android:scheme="https" />
    </intent-filter>
    

    请注意,您不需要在第二个 <data> 元素中包含 host,因为在每个 <intent-filter> 元素中,每个 <data> 属性的所有组合都被视为有效(因此此 Intent 过滤器确实解析 https://www.example.com)。

  • 每个网站域只能声明一个即时应用。(这与为可安装应用创建应用链接不同,可安装应用允许您将网站与多个应用关联。)

  • 您的即时应用中的所有 HTTP URL Intent 过滤器都应包含在您的可安装应用中。这很重要,因为一旦用户安装了您的完整应用,点击 URL 应始终打开已安装的应用,而不是即时应用。
  • 您必须在即时应用和可安装应用中至少一个 Intent 过滤器中设置 autoVerify="true"。(请参阅如何启用自动验证。)
  • 您必须为每个域(以及您的应用链接支持的子域)发布一个 assetlinks.json,使用 HTTPS 协议。(请参阅如何支持多个主机的应用链接)。
  • assetlinks.json 文件必须是有效的 JSON,不带重定向地提供服务,并且对机器人可访问(您的 robots.txt 必须允许抓取 /.well-known/assetlinks.json)。
  • 不建议在 Intent 过滤器的 host 属性中使用通配符。(请参阅如何支持来自多个子域的应用链接。)
  • 自定义主机/方案 URL 应使用单独的 Intent 过滤器声明。
  • 确保您的应用链接 URL 考虑到您关键字的最高搜索结果。