我想在我的Android应用中实现延迟深度链接。我的理解是我需要提供一个网址,当用户打开网址时,如果尚未安装该应用,它会将用户引导至应用或玩商店。根据我的研究,似乎Android能够默认解析延迟深度链接。但我的问题是URL来自哪里? Google是否有任何网址构建器可以为我生成或者我是否需要拥有一个网站并为网址编写一些代码?
答案 0 :(得分:4)
网址来自任何应用或用户。它只是http://example.com/path形式的普通应用。不可思议的是,您的清单会为http方案和example.com/path路径注册一个intent过滤器,而Android会将具有该URL的ACTION_VIEW的任何意图注册到您的应用程序。如果您的应用尚未安装,则因为它的http网址会回退到浏览器。如果网址碰巧或重定向到了游戏商店,那么它也会让你获得这种行为。
答案 1 :(得分:2)
到目前为止,答案和评论都是指普通深层链接。它们都不会让你延迟深层链接(即,即使尚未安装应用程序且用户需要首先访问Play商店下载它,也能深层链接)。
Vanilla iOS根本不支持延迟深度链接。 Android可以使用Android Google Play referrer执行此操作,但它不可靠,并且在Chrome中根本不起作用。
要执行此操作,您可能需要调查免费的第三方服务,例如Branch.io(完全披露:我在分支机构团队中)。 Branch平台将所有技术细节和边缘情况抽象化,因此您需要担心的是在创建链接时定义一组键/值参数(例如:articleID: story123
)。分支确保在用户单击链接后第一次启动时,应用程序内部会返回这些参数,无论是否在单击链接时安装了应用程序。然后,您可以根据需要使用这些值进行路由/自定义。
答案 2 :(得分:0)
Firebase Dynamic Links似乎是支持延迟的深层链接的官方Android方法,该深层链接会在需要时通过安装UI向用户发送。它还适用于iOS和Web。
答案 3 :(得分:0)
您可以尝试使用此方案(发送给用户):
intent://details?id=X&url=Y&referrer=Z#Intent;scheme=market;action=android.intent.action.VIEW;package=com.android.vending;end";
X:应用程序的程序包名称
Y:应在应用清单中定义的深层链接方案。 (请参阅此内容)。在这里,他们以该URL为例:“ http://www.example.com/gizmos”,因此应将Y替换为该URL。
Z:可以是您要通过Google Play传递到应用程序的任何数据。请注意,您传递的任何数据都不应该用&分隔,因为原始参数本身是用&分隔的。
根据我的实验,浏览器可以理解该URL,它会根据软件包名称和深层链接方案将您重定向到该应用。否则,您会带您进入Google Play。
PS:Google Play会向该应用广播。因此,请确保您在接收器中接收到广播。