我正在为我的Android应用使用使用FaceBook登录功能。在我面临一个问题,在设备中使用现有的FaceBook应用程序。
我正在使用SessionLoginSample登录facebook。它显示一个用于登录facebook的自定义视图,它工作正常但是 如果在设备中安装了facebook应用程序,那么它将不会显示其自定义视图,而是导航到Facebook应用程序并显示其登录页面(或查看。见下图),如果我在facebook app登录我没有得到Facebook认证过程的正确回应。
Facebook应用程序登录视图
如果设备中没有安装facebook应用程序,那么它将显示其自定义视图,并且特定功能的所有整个流程都正常工作。
SessionLoginSample的自定义视图
是否有任何方法可以显示SessionLoginSample的自定义视图,即使设备中安装了facebook应用程序或任何其他相关问题?
答案 0 :(得分:0)
我已经通过我的应用中的代码部分解决了。 这将在两种情况下给出响应,即安装Native应用程序或未安装Native app。
这是thi的链接
import com.facebook.AsyncFacebookRunner;
import com.facebook.DialogError;
import com.facebook.Facebook;
import com.facebook.Facebook.DialogListener;
import com.facebook.FacebookError;
import com.facebook.Session;
import com.facebook.SessionState;
facebook = new Facebook( APP_ID );
mAsyncRunner = new AsyncFacebookRunner( facebook );
loginWithFB();
public void loginWithFB()
{
if(!facebook.isSessionValid()) {
facebook.authorize(Login.this, new String[] {"publish_stream","read_stream", "offline_access"}, //Facebook.FORCE_DIALOG_AUTH,
new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError error) {Log.e("FB:","Facebook Error" );}
@Override
public void onError(DialogError e) {Log.e("FB:","Error" );}
@Override
public void onCancel() {}
});
}
}
@Override
public void onActivityResult( int requestCode, int resultCode, Intent data )
{
super.onActivityResult( requestCode, resultCode, data );
facebook.authorizeCallback( requestCode, resultCode, data );
}