深层链接、Android 应用链接、Firebase 动态链接和应用索引之间的区别

Difference between Deep Links, Android App Links, Firebase Dynamic Links and App Indexing

这里是在导航组件中使用深层链接的解释:

https://developer.android.com/guide/navigation/navigation-deep-link

它说:

An explicit deep link is a single instance of a deep link that uses a PendingIntent to take users to a specific location within your app. When a user opens your app via an explicit deep-link, the task back stack is cleared and replaced with the deep link destination.

现在的问题是 Deep LinksAndroid App LinksApp IndexingFirebase Dynamic Links 之间的区别是什么?我们应该在什么时候使用它们?

另外还有一点就是要全部设置吗?


1)深links:
例如,当转到你的管子并通过 link select 共享视频选项时。

然后复制link并粘贴到记事本并保存。然后在android设备(tablet/mobile等)中打开文件。
然后单击 link 然后看看会发生什么。
如果有 youtube 应用程序意味着 android os 要求用户选择 ose 一个选项 youtube 应用程序或浏览器等。
如果用户点击 youtube 应用程序,则 link 在 youtube 应用程序中处理。

.
Deep link 是一个 link 让 android OS 搜索能够处理 text/link,如果找到超过 1 个,则表示它询问 select,这是想要的。

我们可以让我们的应用使用深度link。
在 android 清单中将所需的 activity 应用程序(单击 link 时需要打开 activity)作为可浏览的 via intent和动作作为视图。


参考:

1)https://developer.android.com/training/app-links/deep-linking

示例代码:

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_view_http_gizmos">
        <action **android:name="android.intent.action.VIEW**" />
        <category android:name="android.intent.category.DEFAULT" />
        <**category android:name="android.intent.category.BROWSABLE**" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
    </intent-filter>
    <intent-filter android:label="@string/filter_view_example_gizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="gizmos" />
    </intent-filter>
</activity>

Deep Links:

如您所知,Deep Link 是最简单的一个,它在您的应用程序中完全是本地的。单击特定模式 URI 可以触发活动。该模式在 android Manifest 中使用 intent-filter 定义。如果 URI 存在多个处理程序,Android 系统允许用户从对话框中 select 目标应用程序。很明显,如果您的应用程序未安装在设备上,则 Deep Link 不起作用。 URL 查询参数携带的应用程序使用的附加数据。

  • 要查看其用法示例,请参阅this

Android App Links:

Android App LinksDeep Links 相同,只是略有不同。您的应用可以将自己介绍为特定模式 link 的默认处理程序。因此,当有多个应用程序处理目标 link 时,您的应用程序会在不显示 app-selection 对话框的情况下处理它。此外,如果用户不希望该应用程序成为默认处理程序,他们可以从其设备的系统设置中覆盖此行为。 Android App Links 功能仅适用于 Android 6.0(API 级别 23)及更高版本。

  • 要查看其用法示例,请参阅this

Dynamic Links:

Dynamic Links 消除了 DeepLink 弱点。使用 Dynamic Links,您可以以类似的方式对待所有平台,例如 Android、iOS 和网络。它将用户从您的移动网站无缝转移到您应用程序中的等效内容(如果用户尚未在 her/his 设备上安装您的应用程序,则内容将在应用程序安装后显示)。此外,您可以在 Firebase 控制台中看到 Dynamic Link 的日志。另一个功能是找出用户点击了 link 的位置。 (您分享的地方 link)

  • 要查看其用法示例,请参阅this and this

App Indexing:

App Indexing 有点不同。它的重点是 google 搜索结果。使用 App Indexing、Google 为您的应用程序和网站的内容编制索引。如果现有 URL 的应用程序内和网站相同,Google 会验证您拥有这两者。然后在 Google 的搜索结果中,在他们的设备上安装了您的应用程序的用户在单击 link 时会直接转到您应用程序中的内容。此外,可以通过 Google 索引应用程序中的个人内容。因此,当用户在 Google 中搜索关键字时,相关的应用内内容将显示在搜索结果中。

  • 要查看其用法示例,请参阅this