2

単一のアクティビティ構造と動的機能モジュール アプローチを備えたジェットパック ナビゲーション コンポーネントを使用して、アプリケーション モジュールを分離しています。今のところモジュールをオンデマンドにしたくないので、それらはすべてインストール ベース アプリ モジュールにインストールされます。私のアプリ モジュール ナビゲーション XML には、各動的モジュールを参照する 4 つの include-dynamic パーツがあります。

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/app_navigation_graph"
    app:startDestination="@id/featurePaydarNavGraph">

<include-dynamic
    android:id="@+id/featurePaydarNavGraph"
    app:graphResName="feature_paydar_nav_graph"
    app:moduleName="feature_paydar" />

<include-dynamic
    android:id="@+id/featurePawintoNavGraph"
    app:graphResName="feature_pawinto_nav_graph"
    app:moduleName="feature_pawinto" />

<include-dynamic
    android:id="@+id/featureToolsNavGraph"
    app:graphResName="feature_tools_nav_graph"
    app:moduleName="feature_tools" />

<include-dynamic
    android:id="@+id/featureServicesNavGraph"
    app:graphResName="feature_services_nav_graph"
    app:moduleName="feature_services" />

</navigation>

モジュールの一部には接続があります。たとえば、ツール モジュールには、他のモジュールの他のフラグメントを読み取って移動する QR コード機能がありますNavManager

問題は、最初のモジュールからディープリンクを呼び出す前に 2 番目のモジュールに入らなかった場合、ディープリンクが見つからないというアプリケーションのクラッシュが発生することですが、2 番目のモジュールに入ってから最初のモジュールからディープリンクを呼び出すと、問題なく正常に動作します。したがって、ナビゲーションが動的モジュールのディープリンクを理解できるようにするために、何かをトリガーする必要があると思います。

次のリンク(制限セクション)の最後で、動的モジュールでディープリンクがサポートされていないことをグーグルが言及していることを私は知っています。

ナビゲーションの動的制限

そのため、他のモジュールからのディープリンクを呼び出す前にターゲットモジュールが開いていたときに機能し、以前に開かれていないと機能しないことがわかりました。

4

0 に答える 0