Android Navigation DeepLinks — как отличить навигацию с помощью навигационных действий от глубоких ссылок

У меня есть навигационные действия и глубокая ссылка, которая ведет вас к определенному фрагменту в зависимости от того, откуда вы переходите, я хочу определить, использовалась ли глубокая ссылка или только навигационные действия.


person Nnenna Iheke    schedule 24.03.2021    source источник


Ответы (1)


Это именно то, для чего нужен дополнительный элемент KEY_DEEP_LINK_INTENT: если он присутствует в аргументах вашего фрагмента, то вы были запущены по диплинку.

bool launchedFromDeepLink = getArguments() != null &&
    getArguments().containsKey(NavController.KEY_DEEP_LINK_INTENT)
person ianhanniballake    schedule 24.03.2021
comment
Спасибо любезно, но куда мне добавить Аргумент, в настоящее время мой навигационный код для фрагмента выглядит так... - person Nnenna Iheke; 24.03.2021
comment
‹фрагмент android:id=@+id/navigation_details android:name=DetailsFragment android:label=details› ‹deepLink android:id=@+id/deepLink app:uri=app://videos/{videoId} /› ‹argument android:name=videoId app:argType=integer /› ‹/fragment› - person Nnenna Iheke; 24.03.2021
comment
Вам вообще не нужно добавлять какие-либо аргументы. Это делается автоматически за вас, совершенно независимо от каких-либо аргументов. - person ianhanniballake; 24.03.2021
comment
Каждый раз он возвращает false, я посмотрю на это, спасибо. - person Nnenna Iheke; 24.03.2021