Android:使用底部导航栏进行深层链接

时间:2020-04-01 17:12:43

标签: android deep-linking android-architecture-components android-architecture-navigation

我正在尝试使用android导航组件将Web深层链接URL集成到我的应用程序中,因为我一直在进行以下操作。

预期的片段XML,应通过URL打开。

<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/apk/res-auto"
    android:id="@+id/sample_navigation_graph"
    app:startDestination="@id/sampleFragment">

    <fragment
        android:id="@+id/sampleFragment"
        android:name=".ui.tab.sampleFragment"
        android:label="SampleFragment"
        tools:layout="@layout/fragment_new">
        <deepLink app:uri="https://example.com/sutirth" />
    </fragment>
</navigation>

我的Android清单文件声明

<activity android:name=".MainActivity"
            android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="https"
                    android:host="example.com"/>
            </intent-filter>
            <nav-graph android:value="@navigation/app"/>
        </activity>

我的主导航图

<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/app"
    app:startDestination="@id/sample_navigation_graph"
    tools:ignore="InvalidNavigation">


    <include app:graph="@navigation/sample_navigation_graph"/>


</navigation>

使用上述设置,我可以完美地导航到目的地。但是,通过深层链接导航时,我看不到底部导航栏和工具栏。打算这样吗?

参考资料:用于底部导航的Android代码示例

1 个答案:

答案 0 :(得分:0)

如果您使用的是多模块导航图。确保将特定的导航图也添加到清单中。您的深层链接将正常工作

例如android清单

<activity android:name=".MainActivity"
            android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="https"
                    android:host="example.com"/>
            </intent-filter>
            <nav-graph android:value="@navigation/app"/>
 <include app:graph="@navigation/sample_navigation_graph"/>
        </activity>
相关问题