問題タブ [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.

0 投票する
2 に答える
1243 参照

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つ)を追加できるようにしたいと考えています。

0 投票する
1 に答える
776 参照

android - Nav コンポーネントのディープリンクは条件付きナビゲーションを行いません

ユニバーサル リンクからアプリ画面へのディープリンクに navcomponent ディープリンク オプションを使用しています。

ステップ 1: main_nav_graph ファイルにディープリンク パラメータを追加

ステップ 2: mainactivity のマニフェスト ファイルに追加

ステップ 3: SMS のリンクをクリックしてディープリンクを起動する

見られるシナリオ:

私のアプリでは SplashActivity が Main Launcher です。ただし、メイン アクティビティは navgraph が初期化される場所です。そこで、マニフェストのメイン アクティビティに navgraph タグを追加しました。

メイン アクティビティは、単一のタスクとして追加されます。

ディープリンクすると、次のように表示されます。

  1. 私のメインアクティビティは2回再開されます(アプリを起動して閉じてから再度起動し、画面にディープリンクするように見えます)

  2. ユーザーがログインしていない場合、ナビゲーション ルート ビューにとどまる条件チェックがあります。しかし、異常なシナリオを作成するディープリンク画面にまだ移動していることがわかります。