我正在使用Twitter4j库将Twitter实现到我的应用程序中。我有一个DialogFragment
,其中包含WebView
,并允许用户使用我的应用登录其Twitter帐户。它允许用户登录,但永远不会调用回调URL。相反,即使用户已经登录,它也会继续显示DialogFragment
中的登录按钮。如果用户已登录,我怎样才能从DialogFragment
调用回调URL在?
以下是Twitter开发者网站上我的回调网址的布局:
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");
答案 0 :(得分:1)
检查您登录后获得的网址,然后将其与您的回调网址进行比较。
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;
}