首页 > 解决方案 > 深度链接:如何返回调用深度链接的应用程序?

问题描述

是否可以跟踪应用程序的深层链接的来源?在我的项目中,我成功地从浏览器深度链接到我的应用程序,完成了我需要做的事情,然后我希望被发送回浏览器。但是,调用finish()不起作用,因为出于某种原因,我的主屏幕是我的浏览器(我单击深层链接)和我的应用程序之间的堆栈中的活动,所以我最终只是回到了手机的主屏幕上.

我的想法是以某种方式识别深层链接的“调用者”。有没有办法在不通过深层链接的查询参数中的用户代理的情况下做到这一点?

我现在的位置如下:

var browser = "com.android.chrome"
var intent = packageManager.getLaunchIntentForPackage(browser)
startActivity(intent)

但是,显然,我需要知道它们来自的浏览器包的名称。

(或者,如果有人知道为什么我的深层链接可能会转到 [浏览器 -> 主屏幕 -> 应用程序] 而不是 [浏览器 -> 应用程序],那也会有所帮助。)

这是调用之前的活动堆栈finish(),从运行adb shell dumpsys activity | grep -i run

 Running activities (most recent first):
        Run #0: ActivityRecord{50a3a82 u0 io.myapp/.activity.ActivityMain t6634}
    Running activities (most recent first):
        Run #0: ActivityRecord{b13082f u0 com.teslacoilsw.launcher/.NovaLauncher t6481}
    Running activities (most recent first):
        Run #0: ActivityRecord{c974ad u0 com.android.chrome/com.google.android.apps.chrome.Main t6607}

我的主屏幕在哪里com.teslacoilsw.launcher/.NovaLauncher

标签: androiddeeplink

解决方案


推荐阅读