Глубокая ссылка: как вернуться к приложению, из которого была вызвана глубокая ссылка? - PullRequest
0 голосов
/ 17 марта 2020

Можно ли отследить происхождение глубокой ссылки в приложении? В моем проекте я успешно выполняю глубокие ссылки из браузера в свое приложение, выполняя то, что мне нужно сделать, а затем хочу отправить его обратно в браузер. Тем не менее, вызов finish() не работает, потому что по какой-то причине мой домашний экран - это активность в стеке между моим браузером (где я нажал на глубокую ссылку) и моим приложением, поэтому я в итоге просто возвращаюсь на свой домашний экран телефона.

Я думал о том, чтобы как-то идентифицировать «абонента» глубокой ссылки. Есть ли способ сделать это, не передавая, скажем, пользовательский агент в параметрах запроса глубокой ссылки?

Где я сейчас нахожусь, выглядит следующим образом:

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

Но, очевидно, мне нужно знать название пакета браузера, из которого они вышли.

(Или, если кто-то знает, почему моя глубокая ссылка может идти [браузер -> домашний экран -> приложение] вместо [browser -> app] это также было бы полезно.)

Это стек действий перед вызовом 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 мой домашний экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...