Android:使用intent-filter处理OAuth回调

时间:2010-04-19 07:30:30

标签: android oauth

我正在构建一个需要OAuth的Android应用程序。除了处理来自Yahoo的回调之外,我的所有OAuth功能都有效。我在AndroidManifest.xml中有以下内容:

  <intent-filter>
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:host="www.test.com" android:scheme="http"></data> 
  </intent-filter>

www.test.com将替换为我拥有的域名。看来:

  • 单击页面上的链接时会触发此过滤器。
  • 雅虎不会在重定向时触发,浏览器会在www.test.com
  • 上打开网站
  • 直接在浏览器中输入域名时不会触发。

任何人都可以帮助我

  • 什么时候会触发这个意图过滤器?
  • 对意图过滤器或权限进行的任何更改都会扩大过滤器以应用于重定向请求吗?
  • 我可以使用的其他方法吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:12)

所以我改变了使用自定义方案的方法,而不是Web URL,现在它都按预期工作。

所以我的回调网址是:
  X://回调

我的意图过滤器是:

<intent-filter>
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:scheme="X"></data> 
</intent-filter>

其中X是我的客户计划的名称。

答案 1 :(得分:0)

对于OAUTH,请确保您使用的是V2,因为V1即将被弃用。

 <intent-filter android:label="filter_react_native">
           <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.DEFAULT"/>
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:host="www.test.com" android:scheme="https"/>
     </intent-filter>

生成的URI将为https://www.test.com

对于

以下应用数据意图示例

 <data android:host="people" android:scheme="peopleapp"/>
生成的

uri将为peopleapp://people

请检查您是否正在使用路由器,如果是,则应在堆栈导航器中显示人员屏幕。

最后,

测试意图数据uri的最佳方法是:

  1. 如果尚未完成,请卸载现有应用。

  2. 再次同步并构建代码。

  3. 使用uri peopleapp:// people 在您的应用中调用网络视图。

  4. 应该可以。

  5. 如果您使用的是模拟器,请检查android here

  6. 提供的以下链接
  7. 在您的终端上运行此程序(尝试 adb设备进行测试)。

    $ adb shell am start
         -W -a android.intent.action.VIEW
         -d <URI> <PACKAGE>
    
  8. URI将为peopleapp://people

  9. 包将是您的包/应用程序/名称,即{。@string/app_name

希望这对您有所帮助。