카카오 로그인 api 붙이는 데
onActivityResult 가 호출되지 않는 문제가 있었다
웹로그인 할때는 잘 돌아갔는데
카카오 간편 로그인을 사용하는 테스터들이 로그인 화면으로 돌아간다고 알려줬다
확인해보니까
간편로그인 완료 시 카카오에서 액티비티를 호출하는데
나는 loginFragment에 onActivityResult를 구현해두었다
loginFragment의 상위인 MainActivity에도 onActivityResult를 구현해줬다
MainActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Logger.d(className, "KAKAO_API onActivityResult ");
if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)) {
Logger.d(className, "KAKAO_API handleActivityResult ");
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
LoginFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Logger.d(className,"KAKAO_API onActivityResult ");
if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)) {
Logger.d(className,"KAKAO_API handleActivityResult ");
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
두 페이지 모두 onActivityResult를 작성했더니
Fragment에도 신호가 갔다
Fragment안에 sessionCallback 이 작동했다
private ISessionCallback sessionCallback = new ISessionCallback() {
@Override
public void onSessionOpened() {
Log.i("KAKAO_SESSION", "로그인 성공");
Logger.d(className,"KAKAO_SESSION 로그인 성공");
}
@Override
public void onSessionOpenFailed(KakaoException exception) {
Log.e("KAKAO_SESSION", "로그인 실패", exception);
Logger.d(className,"KAKAO_SESSION 로그인 실패" + exception);
}
};