gpt4 book ai didi

java - 来自 DialogFragment 的 Twitter 回调 URL

转载 作者:行者123 更新时间:2023-12-01 14:27:44 25 4
gpt4 key购买 nike

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

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

http://DOMAIN_NAME/SCHEME://HOST

这是我的 list 文件中的 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");

最佳答案

检查您登录后获得的网址,然后将其与您的回调网址进行比较。

 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;
}

关于java - 来自 DialogFragment 的 Twitter 回调 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17072985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com