【问题标题】:Twitter callback URL from DialogFragment来自 DialogFragment 的 Twitter 回调 URL
【发布时间】:2013-06-12 18:44:28
【问题描述】:

我正在使用 Twitter4j 库在我的应用程序中实现 Twitter。我有一个DialogFragment,它拥有一个WebView,并允许用户使用我的应用程序登录他们的Twitter 帐户。它允许用户登录,但永远不会调用回调 URL。相反,即使用户已经登录,它也会继续在DialogFragment 中显示登录按钮。如何在用户登录后从DialogFragment 调用回调 URL?

这是我在 Twitter 开发者网站上的回调 URL 的布局:

http://DOMAIN_NAME/SCHEME://HOST

这是我的清单文件中的Activity 声明:

    <activity
        android:name=".TwitterActivity"
        android:label="@string/app_name"
        android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <!-- Callback URL that Twitter will call which will direct us back into our app -->
            <data android:scheme=SCHEME android:host=HOST />    
        </intent-filter>
    </activity>

在我的 Activity 类中,我声明了一个包含回调 URL 的变量:

String callbackUrl = "SCHEME://HOST";

占位符 DOMAIN_NAME、SCHEME 和 HOST 都对应于它们的相应值。

最后,我的Activity 中的 login() 方法中的代码:

    mRequestToken = twitter.getOAuthRequestToken(callbackUrl);

    InternetDialog webDialog = new InternetDialog();
    webDialog.setUrl(mRequestToken.getAuthenticationURL());

    webDialog.show(getSupportFragmentManager(), "Twitter WebView");

【问题讨论】:

    标签: java android twitter twitter4j android-dialogfragment


    【解决方案1】:

    检查你登录后得到的url,然后和你的回调url比较。

     private class TwitterWebViewClient extends WebViewClient {
    
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        // what is the value of url
            if (url.startsWith(AppConstants.CALLBACK_URL)) {
                Uri uri = Uri.parse(url);
                String verifier = uri.getQueryParameter("oauth_verifier");
                mListener.onComplete(verifier,0);
                TwitterDialog.this.dismiss();
    
                return true;
            }
            return true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2023-03-19
      • 2011-06-17
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多