問題タブ [android-deep-link]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ビルド時にプレースホルダーとナビゲーション コンポーネントを使用してディープリンクを作成する方法
ディープリンクを利用するアプリがあります。また、Android ナビゲーション コンポーネントも使用します。
現在、out navigation.xml ファイルでディープリンクを構成しており、これは正常に機能しますが、設定された環境変数に基づいてビルド時に別のディープリンクを追加できるようにする必要があります。
build.gradle で String リソースを設定し、navigation.xml でこれらを参照しようとしました。
また、navigation.xml にプレースホルダーを設定しようとしましたが、既に URI として解析されているため、置き換えることはできません。
また、マニフェストでプレースホルダーを使用してダイレクト インテント フィルターを設定しようとしましたが、これは機能しますが、ナビゲーション コンポーネントからの優れたルーティングが失われます。
現在、out navigation.xml ファイルのディープリンクを次の形式で構成しています。
設定された Envar に基づいて、ビルド時に追加のディープリンクを作成できるようにする必要があります。
例:
DEEPLINK_ENVAR = "replacement.com"
Build.gradle:
ナビゲーション.xml:
上記は動作しませんのでご注意ください。
これがマニフェストの単なるインテント フィルターである場合は、マニフェスト プレースホルダーを使用してこのタスクを達成し、それらを app.gradle に設定できます。ただし、navigation.xml で設定されたディープリンクは URI として解析され、置き換えられる前にプレースホルダーが破棄されます。
誰かが似たようなことを試みましたか?ビルド前のスクリプトを実行して、ナビゲーション ファイルを直接テンプレート化する必要がないようにしています。
望ましい結果:
Androidナビゲーションコンポーネントを利用しながら、ビルド時に追加のディープリンク(実際には異なる宛先への4つ)を追加できるようにしたいと考えています。
android - Nav コンポーネントのディープリンクは条件付きナビゲーションを行いません
ユニバーサル リンクからアプリ画面へのディープリンクに navcomponent ディープリンク オプションを使用しています。
ステップ 1: main_nav_graph ファイルにディープリンク パラメータを追加
ステップ 2: mainactivity のマニフェスト ファイルに追加
ステップ 3: SMS のリンクをクリックしてディープリンクを起動する
見られるシナリオ:
私のアプリでは SplashActivity が Main Launcher です。ただし、メイン アクティビティは navgraph が初期化される場所です。そこで、マニフェストのメイン アクティビティに navgraph タグを追加しました。
メイン アクティビティは、単一のタスクとして追加されます。
ディープリンクすると、次のように表示されます。
私のメインアクティビティは2回再開されます(アプリを起動して閉じてから再度起動し、画面にディープリンクするように見えます)
ユーザーがログインしていない場合、ナビゲーション ルート ビューにとどまる条件チェックがあります。しかし、異常なシナリオを作成するディープリンク画面にまだ移動していることがわかります。