Facebook对话框和后退按钮

Nit*_*mer 3 facebook dialog back-button facebook-android-sdk

当使用facebook android sdk打开Dialogs时,一切正常.

但是,如果用户单击"返回"按钮,则对话框确实会关闭,但不会调用对话框侦听器(或任何其他方法)的onCancel方法.

我搜索了这个问题,并在github上找到了来自fb android sdk的pull请求:当Dialog被取消时,在DialogListener调用Cancel.

我拿了一部分并修改了一下来得到这个:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
        mWebView.stopLoading();
        dismiss();
        mListener.onCancel();
        return true;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我把它添加到FbDialog类中,事实上这似乎可以解决问题.

我想知道为什么这不是sdk的一部分?拉动请求超过一年,最后一个响应是大约11个月.为什么不将它添加到sdk源代码?

由于这个解决方案正在运行它并不紧急,但我不喜欢修改facebook sdk的来源,因为它可能会在以后出现问题(如果/何时更新).

有任何想法吗?

And*_*tto 6

您应该修改FbDialog类.添加此行以使用BACK键设置对话框不可取消:

setCancelable(false);
Run Code Online (Sandbox Code Playgroud)

或者添加这些行来处理BACK键单击:

@Override
public void onBackPressed() {
    mWebView.stopLoading();
    dismiss();
    mListener.onCancel();
}
Run Code Online (Sandbox Code Playgroud)