检测深度链接是从Android应用程序打开还是在其外部
问题描述:
我有一个问题来检测(本机方式)如果从应用程序(例如,从浏览器)启动深层链接,现在我检查getIntent().getPackage() == null
但这不工作的Android 6,因为我配置了一个深的链接,如应用程序链接(see),这些有getIntent().getPackage()
。检测深度链接是从Android应用程序打开还是在其外部
有什么想法?
答
您仍然可以在Android 6之前的版本上使用getIntent().getPackage() == null
,并在Android 6及更高版本上使用getReferrer()
(available since API 22)。
答
根据版本代码,您应该检查activity.getReferrer()
或activity.getIntent().getParcelableExtra(Intent.EXTRA_REFERRER)
。这些方法返回给你的引用URL。然后,您可以通过referrerUri.getScheme()
查看方案。
这是一个很好的codelab示例,显示了如何跟踪深层链接引用(第6步是你需要的)。
https://codelabs.developers.google.com/codelabs/deeplink-referrer/#5
我不认为使用引荐会工作,因为getReferrer返回具有URI参数引用的值。当我第一次安装应用程序时,需要将参数从谷歌商店传递到应用程序时,我使用了INSTALL_REFERRER。 –