我使用导航组件。我的应用程序有 2 个主要部分:1 个带有 nav_graph 的初始活动 2 个带有底部导航的主要活动,其中每个菜单项都有自己的 nav_graph。问题是我无法弄清楚弹出通知时如何进行导航。
因此,当通知到达并且用户点击它时,我需要: - 检查应用程序是否打开以及现在打开哪个屏幕 - 如果应用程序关闭或在后台,通过深层链接,检查启动活动:如果用户已登录 - 移动到主要活动(如果不提供身份验证屏幕)保持导航到我需要的片段的深层链接。
飞溅图和三个 memu 项目图之一
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/splash_graph"
app:startDestination="@id/splashFragment">
<fragment android:id="@+id/splashFragment"
android:name="com.app.app.ui.navigation.fragment.SplashFragment"
android:label="SplashFragment">
<action android:id="@+id/action_splashFragment_to_authFragment"
app:popUpTo="@+id/authFragment"
app:popUpToInclusive="true"
app:destination="@id/authFragment"/>
<action android:id="@+id/action_splashFragment_to_mainActivity"
app:popUpTo="@+id/mainActivity"
app:popUpToInclusive="true"
app:destination="@id/mainActivity" app:launchSingleTop="true"/>
</fragment>
<fragment android:id="@+id/authFragment"
android:name="com.app.app.ui.navigation.fragment.AuthFragment"
android:label="AuthFragment">
<action android:id="@+id/action_authFragment_to_mainActivity"
app:popUpTo="@+id/mainActivity"
app:popUpToInclusive="true"
app:destination="@id/mainActivity" app:launchSingleTop="true"/>
</fragment>
<activity android:id="@+id/mainActivity"
android:name="com.app.app.ui.navigation.activity.MainActivity"
android:label="MainActivity">
<deepLink android:id="@+id/deepLinkMain" app:uri="com.app.app/"/>
</activity>
</navigation>
Run Code Online (Sandbox Code Playgroud)
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nextFragment"
app:startDestination="@id/nxtFragment">
<fragment android:id="@+id/nxtFragment"
android:name="com.app.app.ui.navigation.fragment.NextFragment"
android:label="Next">
<deepLink
android:id="@+id/deepLink"
app:uri="com.app.app/nextFragment{id}"
android:autoVerify="true"/>
<argument
android:name="id"
app:argType="string"/>
</fragment>
</navigation>
Run Code Online (Sandbox Code Playgroud) navigation android splash-screen android-architecture-navigation