当使用 facebook android sdk 打开对话框时,一切正常。
但是,如果用户单击“后退”按钮,则对话框确实会关闭,但不会调用对话框侦听器的onCancel方法(或任何其他方法)。
我搜索了这个问题,并从 github 上的 fb android sdk 中找到了这个拉取请求:Calls Cancel on DialogListener when Dialog is Canceled。
我参加了一部分并对其进行了一些修改以得到这个:
@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;
}
我将它添加到FbDialog类中,确实这似乎可以解决问题。
我想知道为什么这不是 sdk 的一部分?该拉取请求已有一年多的历史,最后一个响应大约有 11 个月的历史。为什么不将它添加到 sdk 源?
由于该解决方案正在运行,因此并不紧急,但我不喜欢修改 facebook sdk 的源代码,因为以后可能会出现问题(如果/当它们更新时)。
有任何想法吗?