Url Scheme意图不使用get参数

时间:2016-01-05 10:23:06

标签: android android-intent intentfilter url-scheme chrome-custom-tabs

我目前正在开发基于OpenId Connect和Chrome CustomTabs的身份验证应用。在身份验证流程中,用户会被发送到重定向网址,并且我在这里遇到了一些问题。

在我的应用中,我有以下intent-filter:

<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>

然而,意图有时并不起作用。似乎每次都会出现问题&#34;&amp;&#34;在URL中使用,意图不会被触发。我得到一个ERR_UNKNOWN_URL_SCHEME。

我尝试通过adb启动一些网址(还有其他接收方),这是我的结果:

确定 adb shell am start -a android.intent.action.VIEW -d&#34; fitbittester:// logincallback&#34;

确定 adb shell am start -a android.intent.action.VIEW -d&#34; sncfapp:// callbackrurl&#34;

确定 adb shell am start -a android.intent.action.VIEW -d &#34; sncfapp:// callbackrurl代码= 45644546&#34;

NOK adb shell am start -a android.intent.action.VIEW -d&#34; sncfapp:// callbackrurl?code = 45644546&amp; scope = test%20&#34;

确定 adb shell am start -a android.intent.action.VIEW -d&#34; sncfapp:// callbackrurl?scope = test%20&#34;

确定 adb shell am start -a android.intent.action.VIEW -d&#34; fitbittester:// logincallback?scope = test%20&#34;

NOK adb shell am start -a android.intent.action.VIEW -d&#34; fitbittester:// logincallback?scope = test%20&amp;代码= 1144&#34;

这是正常的吗?我知道这样的意图应该与REST参数一起使用。但是,当调用带有get参数的URL时,不会触发意图,这似乎很奇怪。

2 个答案:

答案 0 :(得分:2)

这是我找到的解决方案:我必须使用转义字符“\”来使用&amp;亚行的角色。

  

$ adb shell am start“http://www.example.com?param1=1 \&amp; param2 = 2”

答案 1 :(得分:0)

使用网址编码,因为我可以看到&#34;&amp;&#34;之后有一个空格。引起这个问题的事件!!