0

現在、Flutter アプリとディープ リンク (またはアプリ リンクとユニバーサル リンク) に問題があります。iOS ではすべてが機能していますが、Android では特定のリンクで無限ループが発生します。

アプリはディープ リンクを介して開くことができ、これらのリンクに基づいてコンテンツを表示できます (パッケージuni_links2を使用しています)。ただし、アプリ内の発信リンクには大きな問題があります。

アプリには詳細ページがあり、同じドメインのリンクがここに表示されますが、アプリではなくブラウザーで開く必要があります。リンクは、アプリで処理できないコンテンツに移動します。

これらのリンクは、ディープ リンクからアプリ内で開く必要があります。

次のような URL をブラウザ内で開く必要があります。

AndroidManifest.xml

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="ourdomain.com" />
    <data android:scheme="http" android:host="www.ourdomain.com" />
    <data android:scheme="https" />
</intent-filter>

url_launcherパッケージを使用すると URL を開くことができますが、それらはディープ リンクとして直接表示され、独自のアプリで再度開かれます。android_intentも試しましたが、Chrome をデフォルトのインテントとして定義すると機能します。

AndroidIntent intent = AndroidIntent(
  action: 'action_view',
  data: url,
  package: 'com.android.chrome',
);
await intent.launch();

ただし、ユーザーが Chrome をインストールしているかどうかは保証できません。

現在、この問題を解決する方法がわかりません。私が知っているのは、ドメイン全体またはパスをスキーマとして指定できるということだけです。残念ながら、特定のパスを除外することはできません。また、リンクをアプリではなくブラウザーで開くように指定する方法もわかりません。

どうすれば問題を解決できるか分かりますか? 前もって感謝します!

4

1 に答える 1