現在、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 をインストールしているかどうかは保証できません。
現在、この問題を解決する方法がわかりません。私が知っているのは、ドメイン全体またはパスをスキーマとして指定できるということだけです。残念ながら、特定のパスを除外することはできません。また、リンクをアプリではなくブラウザーで開くように指定する方法もわかりません。
どうすれば問題を解決できるか分かりますか? 前もって感謝します!