我正在开发一个使用这个的应用程序:https ://developers.facebook.com/docs/android/native-login/
我遵循了 Facebook 开发教程,所以基本上我有会话检查,它打开对话框,我试图获取 Cancel 事件(当用户取消 Facebook 对话框时),但我对此没有任何方法。
也许你可以帮忙。
谢谢
编辑:实际上,即使我单击取消按钮,我仍然会正确收到 GraphUser。这很奇怪。
我正在开发一个使用这个的应用程序:https ://developers.facebook.com/docs/android/native-login/
我遵循了 Facebook 开发教程,所以基本上我有会话检查,它打开对话框,我试图获取 Cancel 事件(当用户取消 Facebook 对话框时),但我对此没有任何方法。
也许你可以帮忙。
谢谢
编辑:实际上,即使我单击取消按钮,我仍然会正确收到 GraphUser。这很奇怪。
使用 Android SDK 3.5,我通过异常获得了取消事件,如果状态更改回调带有 FacebookOperationCanceledException 或 FacebookAuthorizationException 的实例,则它是一个取消事件:
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (exception instanceof FacebookOperationCanceledException || exception instanceof FacebookAuthorizationException) {
// Cancelled by user, show alert
new AlertDialog.Builder(this).setTitle(R.string.cancelled).setMessage(R.string.permission_not_granted).setPositiveButton(R.string.ok, null).show();
} else {
Session session = Session.getActiveSession();
if ((session != null && session.isOpened())) {
// Session ready
}
}
}
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);
}
};
它工作得很好
将 Session.StatusCallback 添加到您的打开请求中,您可以在其中检查 SessionState。
new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
//check state
}
};
看看这个问题。