登录android后Twitter没有返回应用程序

时间:2013-10-16 10:15:54

标签: android twitter twitter-oauth twitter4j

你好我在twitter上使用auto。

我的代码工作得很好,直到我将访问权限从“只读”更改为“读写”。

我的问题是,点击网页上的“登录”后,它不会回到我的应用程序。

我读到了它,我知道它的回调网址。

这是我的代码:

static final String TWITTER_CALLBACK_URL = "oauth://t4jsample";


private void loginToTwitter() 
        {
            // Check if already logged in

                ConfigurationBuilder builder = new ConfigurationBuilder();
                builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
                builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
                Configuration configuration = builder.build();

                TwitterFactory factory = new TwitterFactory(configuration);
                twitter = factory.getInstance();

                try {
                    requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);

                    this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));

                } catch (TwitterException e) {

                    Toast.makeText(OpeningPage.this, "Something went wrong, please try again", Toast.LENGTH_SHORT).show();

                    e.printStackTrace();
                }
}

我的清单:

    <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="t4jsample"
            android:scheme="oauth" />
    </intent-filter>

我的推特设置页面:

enter image description here

感谢帮助

1 个答案:

答案 0 :(得分:0)

在您的情况下,您需要在应用程序中显示,而不是外部浏览器应用程序,在Android中使用WebView后,创建自定义Web客户端,如:

private class CustomWebClient extends WebViewClient {
...

 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {

 } 

}

并设置为WebView:

webView.setWebViewClient(new CustomWebClient());

在方法shouldOverrideUrlLoading中,您需要跟踪回调网址。