Android 中的延迟深度链接 URL

Deferred Deep Linking URL in Android

我想在我的 android 应用程序中实施延迟深度链接。我的理解是我需要提供一个 url 并且当用户打开 url 时,它会将用户引导至该应用程序或如果尚未安装该应用程序则将其引导至商店。根据我的研究,似乎 Android 能够默认解决延迟深度链接。但我的问题是 URL 来自哪里? Google 是否有任何 url 生成器为我生成它,或者我是否需要有一个网站并为 url 编写一些代码?

url 来自任何应用程序或用户。它只是一个 http://example.com/path 形式的普通应用程序。神奇的是,您的清单为 http 方案和示例注册了一个意图过滤器。com/path 路径,并且 Android 将采用任何具有 ACTION_VIEW 的意图 url到你的应用程序。如果您的应用程序未安装,因为它是一个 http url 它会回退到浏览器。如果 url 碰巧转到或重定向到 Play 商店,那么它也会让你有这种行为。

目前的回答和评论都是指正常深linking。 None 其中的 deferred 深度 linking(即,即使尚未安装该应用程序,也能够深入 link用户需要先访问 Play 商店进行下载。

Vanilla iOS 根本不支持延迟深度 linking。 Android 可以用 Android Google Play referrer 做到这一点,但它不可靠并且在 Chrome.

中根本不起作用

为此,您可能需要调查免费的第三方服务,例如 Branch.io(完全披露:我在 Branch 团队)。 Branch 平台抽象了所有技术细节和边缘情况,因此您只需在创建 link 时定义一组 key/value 参数(例如:articleID: story123) . Branch 确保在用户单击 link 后首次启动应用程序时,这些参数会在应用程序内部返回给您,无论应用程序是否在单击 link 时安装。然后,您可以根据需要使用 route/customize 的值。

Firebase Dynamic Links 似乎是支持延迟深度 link 的官方 Android 方式,如果需要,它将在安装过程中发送用户 UI。它也适用于 iOS 和 Web.

你可以试试这个方案(发给用户):

intent://details?id=X&url=Y&referrer=Z#Intent;scheme=market;action=android.intent.action.VIEW;package=com.android.vending;end";

X:应用包名

Y: Deep link 方案,应在应用程序的清单中定义。 (请参考这个)在这里,他们使用这个 URL 作为例子:“http://www.example.com/gizmos” ,因此 Y 应该被这个 URL.

代替

Z:可以是您想要通过 Google Play 传递给 App 的任何数据。请注意,您传递的任何数据都不应以“&”分隔,因为原始参数本身是“&”分隔的。

根据我的实验,这个 URL 可以被浏览器理解,它会根据包名和 deep-link 方案将您重定向到应用程序。否则它将带您到 Google 播放。

PS:Google Play 向应用程序广播。因此,请确保您在接收器中接收到广播。