現在、OpenId Connect と Chrome CustomTabs に基づく認証アプリを開発しています。認証フロー中に、ユーザーはリダイレクト URL に送信され、ここでいくつかの問題が発生しています。
私のアプリには、次のインテント フィルターがあります。
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="sncfapp" android:host="callbackrurl" />
</intent-filter>
ただし、意図が機能しない場合があります。URLに文字「&」が使用されるたびに、インテントがトリガーされないようです。ERR_UNKNOWN_URL_SCHEME が表示されます。
私はadbを介して(別のレシーバーも)いくつかのURLの起動を開始しようとしましたが、これが私の結果です:
OK adb shell am start -a android.intent.action.VIEW -d "fitbittester://logincallback"
OK adb shell am start -a android.intent.action.VIEW -d "sncfapp://callbackrurl"
OK adb shell am start -a android.intent.action.VIEW -d "sncfapp://callbackrurl?code=45644546"
NOK adb shell am start -a android.intent.action.VIEW -d "sncfapp://callbackrurl?code=45644546&scope=test%20"
OK adb shell am start -a android.intent.action.VIEW -d "sncfapp://callbackrurl?scope=test%20"
OK adb shell am start -a android.intent.action.VIEW -d "fitbittester://logincallback?scope=test%20"
NOK adb shell am start -a android.intent.action.VIEW -d "fitbittester://logincallback?scope=test%20& code=1144"
正常ですか?このようなインテントは、REST パラメーターで使用することになっていることを知っています。ただし、get パラメーターを含む URL が呼び出されたときにインテントがトリガーされないのは奇妙に思えます。