0

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 を導入できますか?

4

1 に答える 1