applink/deeplink 用のインテント フィルタが既にあります。サンプルコード:
<activity android:name="com.XXXX.XXXX.XXXXXXXXXXXXActivity"
android:enabled="true"
android:excludeFromRecents="true"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent"
android:launchMode="singleInstance">
<intent-filter android:autoVerify="true">
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.xxxxxx.com" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
このインテント フィルターは、パスまたは pathPattern がないため、Web ブラウザーからアプリへのリンク リダイレクトを行いません。私たちの行動はそのようなものです。しかし、新しい saml サインインの使用例では、(アプリの webview ではなく) Web ブラウザーで saml サインイン ページを開き、サインインしたらアプリにリダイレクトする必要があります。そのため、今は pathPattern を使用したいと考えています。今、問題が始まります。スキームとホストは同じです。したがって、同じスキームで同じアクティビティの下に新しいインテント フィルターを作成し、pathPattern ブラウザーを使用してホストすると、すべての URL がアプリにリダイレクトされますが、これはまったく望ましくありません。サンプルコード:
<activity android:name="com.XXXX.XXXX.XXXXXXXXXXXXActivity"
android:enabled="true"
android:excludeFromRecents="true"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent"
android:launchMode="singleInstance">
<intent-filter android:autoVerify="true">
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.xxxxxx.com" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.xxxxxx.com" />
<data android:pathPattern="/ap/signin.*" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
新しいアクティビティを試し、そこで 2 番目のインテント フィルタを使用しましたが、それでも同じ問題が発生します。/ap/signin URL だけではなく、すべての URL がブラウザーからアプリへのリダイレクトを開始します。
2 番目のインテント フィルターのみを使用し、1 番目のインテント フィルターを削除すると、/ap/signin URL はブラウザーからアプリにリダイレクトされるだけですが、他のすべてのディープリンク/アプリリンク URL は機能しなくなります。これはなんとなくわかっています。
誰かがこれの適切な解決策を持っていますか? 既存のフローを壊さずに、どうすれば新しい pathPattern を導入できますか?