检测是否从Android应用程序或其外部打开了深层链接

时间:2016-04-12 17:21:28

标签: android deep-linking

我有一个问题需要检测(使用本机方式)如果从应用程序外部(例如,从浏览器)启动了深层链接,现在我检查getIntent().getPackage() == null但这不适用于Android 6,因为我配置了应用链接see)等深层链接,其中包含getIntent().getPackage()

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您仍然可以在Android 6之前使用getIntent().getPackage() == null版本,并在Android 6及更高版本上使用getReferrer()available since API 22)。

答案 1 :(得分:0)

您应该检查activity.getReferrer()activity.getIntent().getParcelableExtra(Intent.EXTRA_REFERRER),具体取决于版本代码。这些方法返回引用URI。然后,您可以按referrerUri.getScheme()检查方案。

这是一个很棒的codelab示例,展示了如何跟踪深层链接引用(第6步是您所需要的)。

https://codelabs.developers.google.com/codelabs/deeplink-referrer/#5

答案 2 :(得分:0)

条件为(签入活动):

intent?.action == Intent.ACTION_VIEW && intent?.data != null