Android和Twitter4j:使用Webview小部件处理OAuth?

6
我已经有一个工作正常的twitter4j实现,但是授权应用程序的OAuth过程会让Android Web浏览器在应用程序后台运行。我想尝试在启动的活动中实现自己的webview,以便我可以finish()它或至少清理我的应用程序。问题是,现在我必须找出如何将authURL返回到我的主要活动。
最好的方法是返回authURL?我已经子类化了一个webview小部件,并正在尝试一种在onPageFinished()中返回authURL的方法,但还没有完全解决。
private class myWebViewClient extends WebViewClient
{
    @Override
    public void onPageFinished (WebView view, String url)
    {
    Log.d (TAG, "onPageFinished");
       super.onPageFinished (view, url);

       if (url.contains (TwitterLibActivity.CALLBACK_URL) == true)
       {
        /*
        mRetIntent = new Intent();
        mRetIntent.putExtra ("verifed", url);
        setResult (RESULT_OK, mRetIntent);
        */
        Log.d (TAG, "have auth url:" + url);
        finish();
       }
    }


    @Override
    public boolean shouldOverrideUrlLoading (WebView view, String url)
    {
        Log.d (TAG, "myWebViewClient url:" + url);
       //return super.shouldOverrideUrlLoading (view, url);
        return (false);
    }
}
3个回答

5

TwitterOAuthView是一个WebView子类,专门用于在Android上进行Twitter OAuth,使用twitter4j。

使用twitter4j的Android Twitter OAuth视图
http://darutk-oboegaki.blogspot.jp/2012/07/twitter-oauth-view-for-android-using.html

由于它实现为View的子类,因此可以无缝地集成到Android布局系统中。这一事实使得TwitterOAuthView成为一个易于重复使用的UI组件。

它的使用非常简单。只需调用start()方法即可。

// Start Twitter OAuth process. Getting a request token, opening Twitter's
// authorization page, and getting an access token are performed.
view.start(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL, true, listener);

通过TwitterOAuthView.Listener接口接收其结果。

// Definition of TwitterOAuthView.Listener interface.
void onSuccess(TwitterOAuthView view, AccessToken accessToken);
void onFailure(TwitterOAuthView view, TwitterOAuthView.Result result);

可以在GitHub TwitterOAuthView找到使用TwitterOAuthView实现的Activity示例。

5

我最近发现了这篇文章,它介绍了如何使用twitter4j而不需要singpost,这个方法可以在webview中使用,帮助你实现相关操作: http://davidcrowley.me/?p=410

问候


0

这里有一个很好的代码示例,展示了如何将Twitter与Android进行集成。我自己也使用了它,并根据需要进行了修改...


谢谢,但我真的在寻找使用twitter4j的解决方案。 - wufoo
1
事实上,给定的示例也使用了twitter4j库。 - Rahul garg
哦,那是我的错误。我没有在导入中看到twitter4j。我会仔细查看一下。 - wufoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接