Facebook 状态回调不适用于片段
Facebook Status call back not working with fragment
我正在尝试在成功登录的片段中使用 SFB 登录回调(fb 显示应用已获得授权),但回调不起作用。
当我用 Activity 尝试相同的代码时,它起作用了。如果出现片段,我是否遗漏了什么?
public void faceBook(View view) {
if (FacebookDialog.canPresentShareDialog(getApplicationContext(),
FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) {
// Publish the post using the Share Dialog - This is working.
//When FB not installed else part will execute - There I have issue
} else {
Session session = Session.getActiveSession();
if(!session.getState().isOpened()) {
//here am setting the status call back as third parameter "this" and implemented Session.status call back in my class which is extended a fragment
//so publishFeedDialog did not get called after login
Session.openActiveSession(this, true, this);
} else {
publishFeedDialog(session);
}
}
}
@Override
public void call(Session session, SessionState sessionState, Exception e) {
//A call supposed to come here after user sign to fb, but that is not happening. (fb shows app as authorized) but callback doesn't work. When I am trying same code with Activity it works
if(session.getState().isOpened()) {
publishFeedDialog(session);
}
}
我查看了 facebook Session class,发现还有另一个版本的 Session.openActiveSession() 可以从 fragments
中使用
openActiveSession(context, fragment, allowLoginUI, statusCallback);
确保片段是 android.support.v4.app.Fragment
我正在尝试在成功登录的片段中使用 SFB 登录回调(fb 显示应用已获得授权),但回调不起作用。 当我用 Activity 尝试相同的代码时,它起作用了。如果出现片段,我是否遗漏了什么?
public void faceBook(View view) {
if (FacebookDialog.canPresentShareDialog(getApplicationContext(),
FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) {
// Publish the post using the Share Dialog - This is working.
//When FB not installed else part will execute - There I have issue
} else {
Session session = Session.getActiveSession();
if(!session.getState().isOpened()) {
//here am setting the status call back as third parameter "this" and implemented Session.status call back in my class which is extended a fragment
//so publishFeedDialog did not get called after login
Session.openActiveSession(this, true, this);
} else {
publishFeedDialog(session);
}
}
}
@Override
public void call(Session session, SessionState sessionState, Exception e) {
//A call supposed to come here after user sign to fb, but that is not happening. (fb shows app as authorized) but callback doesn't work. When I am trying same code with Activity it works
if(session.getState().isOpened()) {
publishFeedDialog(session);
}
}
我查看了 facebook Session class,发现还有另一个版本的 Session.openActiveSession() 可以从 fragments
中使用openActiveSession(context, fragment, allowLoginUI, statusCallback);
确保片段是 android.support.v4.app.Fragment