【问题标题】:Android: Deep-link with Bottom navigation barAndroid:带有底部导航栏的深层链接
【发布时间】:2020-07-13 12:53:23
【问题描述】:

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

应由 URL 打开的预期片段 XML。

<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 代码示例

【问题讨论】:

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


    【解决方案1】:

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

    例如 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>
    

    【讨论】:

    • 您无法在活动标签内添加include 标签。显然,你把所有东西都弄混了,或者只是没有运行程序来查看编译错误
    • 它确实可以通过包含包含标签及其在文档中提到的来工作。 PS它的清单文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2020-09-09
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多