使用OAuth协议浏览器不需要的行为

时间:2012-05-08 00:03:59

标签: android android-activity

所以我有一个使用OAuth协议进行授权操作的软件。在主菜单中,我有一个启动活动的按钮:

Intent i = new Intent(this, HattrickOAuth.class);
this.startActivityForResult(i,OAUTH_ID);

HattrickOAuth 类的onCreate(Bundle savedInstanceState)方法中,我们需要启动浏览器以将用户重定向到授权页面。我用:

Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));                    browser.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
browser.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
this.startActivity(browser);

在onResume()中,我完成了授权,并返回调用结果

setResult(RESULT_OK);
finish();

问题是这会回到浏览器而不是菜单上。有什么我想念的吗?要返回,我在清单中使用以下方案

<activity
    android:label="@string/oauth_name"
    android:name=".hattrick.HattrickOAuth"
    android:theme="@style/MainStyle" >
    <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:host="hattrick"
            android:scheme="h4m-app" />
    </intent-filter>
</activity>

0 个答案:

没有答案