Facebook登录CallbackManager FacebookCallback不被调用吗? [英] Facebook Login CallbackManager FacebookCallback not called?

查看:432
本文介绍了Facebook登录CallbackManager FacebookCallback不被调用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • 我尝试使用LoginButton登录,但未调用登录回调.(LoginButton在Fragment中).
  • 在应用程序onCreate中调用
  • FacebookSdk.sdkInitialize
  • 登录完成后未调用任何回调. 这是代码:
  • I trying to login with LoginButton but the login callbacks are not being called.(LoginButton is in a Fragment) .
  • FacebookSdk.sdkInitialize is called in the Application onCreate
  • No Callbacks are called after login is completed. Here is the Code:

活动:

public class FrameActivity extends BaseActivity {

 public static CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
// FacebookSdk.sdkInitialize is called in the Application onCreate

callbackManager = CallbackManager.Factory.create();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);

}
}

片段:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_login, container, false);
    LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);
    loginButton.setReadPermissions("user_friends");
    loginButton.setReadPermissions("public_profile");
    loginButton.setReadPermissions("email");
    loginButton.setReadPermissions("user_birthday");
    // If using in a fragment
    loginButton.setFragment(this);
    // Other app specific specialization

    // Callback registration
    loginButton.registerCallback(FrameActivity.callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {


}
        @Override
        public void onCancel() {
            // App code

        }

        @Override
        public void onError(FacebookException exception) {
            // App code

        }
    });
    return view;
}

推荐答案

尝试一下:

  1. 在片段的onCreateView()中初始化FacebookSdk.sdkInitialize().

下一行初始化callbackManager = CallbackManager.Factory.create();

在Fragment类中对onActivityResult()的实现.

Implement on onActivityResult() in Fragment class.

添加您的callbackManager.onActivityResult(requestCode, resultCode, data); 在片段onActivityResult()中.

确保从活动中删除FacebookInit()callbackManager.

这篇关于Facebook登录CallbackManager FacebookCallback不被调用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆