【问题标题】:Facebook Session cancel dialogFacebook 会话取消对话框
【发布时间】:2013-09-03 12:38:51
【问题描述】:

我正在开发一个使用它的应用程序:https://developers.facebook.com/docs/android/native-login/

我已经按照 Facebook 开发教程进行操作,所以基本上我有会话检查,它会打开对话框,并且我正在尝试获取 Cancel 事件(当用户取消 Facebook 对话框时)但我对此没有任何方法.

也许你可以帮忙。

谢谢

编辑:实际上,即使我单击取消按钮,我仍然会正确收到 GraphUser。这很奇怪。

【问题讨论】:

  • 我们在这里谈谈:Link.

标签: android facebook events dialog


【解决方案1】:

使用 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);
    }
};

效果很好

【讨论】:

  • 实际上,不,它不起作用。我总是进入 if (例外......)。从来没有在其他地方。
  • 既然你总是进入 if,让我们检查它是否是 FacebookAuthorizationException 而不是 FacebookOperationCanceledException?您可能没有在 FB 应用设置中正确设置密钥哈希。
  • 看入门正确,第4步和第5步:developers.facebook.com/docs/android/getting-started/…
  • 好的,现在我做对了,但是如果用户点击取消,我想完成调用 facebook 对话框的活动。但是 finish() 并没有完成这项工作。
  • 您正在调用活动或片段?如果活动,将警报替换为完成();应该管用。否则 getActivity().finish();
【解决方案2】:

将 Session.StatusCallback 添加到您的打开请求中,您可以在其中检查 SessionState。

       new Session.StatusCallback() {

            @Override
            public void call(Session session, SessionState state, Exception exception) {
                        //check state
            }

        };

查看this question

【讨论】:

  • 这与他遇到的问题不完全相同。我实际上在处理本机对话框上的“取消”按钮时遇到问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多