Намерението на URL схемата не работи с параметри за получаване

В момента разработвам приложение за удостоверяване, базирано на 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.

Опитах се да стартирам няколко URL адреса чрез adb (също и с друг приемник) и ето моите резултати:

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"

НЕ 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"

НЕ adb shell am start -a android.intent.action.VIEW -d "fitbittester://logincallback?scope=test%20& code=1144"

нормално ли е Знам, че такива намерения трябва да се използват с REST параметри. Въпреки това изглежда странно, че намеренията не се задействат, когато се извика URL с параметри за получаване.


person Jejefcgb    schedule 05.01.2016    source източник


Отговори (2)


Ето решението, което намерих: Трябваше да използвам екраниращия знак "\", за да използвам знака & с ADB.

$ adb shell am start "http://www.example.com?param1=1\¶m2 =2"

person Jejefcgb    schedule 21.01.2016

Използвайте Url кодиране, тъй като виждам, че има интервал след „&“, което причинява този проблем!!

person Punit Sharma    schedule 05.01.2016
comment
Е, това не е мой проблем. Филтърът за намерения дори не се задейства поради символа &. Наистина нямам нищо против да знам дали новата ми дейност е подредена върху друга. - person Jejefcgb; 05.01.2016