문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.
Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.
com.kakao.sdk:v2-user:2.20.6 사용하여 카카오 로그인을 구현하고 있습니다.
리액트 웹앱을 웹뷰로 패키징한 형태의 앱이고, 리액트에서 로그인 버튼 클릭 시 아래 함수를 호출하여 카카오톡 로그인을 안드로이드에서 진행하려고 하고 있습니다.
@JavascriptInterface
fun kakaoLogin(message: String) {
val context: Context = webView.context
val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
if (error != null) {
Log.e("Kakao", "카카오계정으로 로그인 실패", error)
} else if (token != null) {
Log.i("Kakao", "카카오계정으로 로그인 성공 ${token.accessToken}")
}
}
// 카카오톡이 설치되어 있으면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인
if (UserApiClient.instance.isKakaoTalkLoginAvailable(context)) {
UserApiClient.instance.loginWithKakaoTalk(context) { token, error ->
if (error != null) {
Log.e("Kakao", "카카오톡으로 로그인 실패", error)
// 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
// 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
if (error is ClientError && error.reason == ClientErrorCause.Cancelled) {
return@loginWithKakaoTalk
}
// 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인 시도
UserApiClient.instance.loginWithKakaoAccount(context, callback = callback)
} else if (token != null) {
Log.i("Kakao", "카카오톡으로 로그인 성공 ${token.accessToken}")
}
}
} else {
UserApiClient.instance.loginWithKakaoAccount(context, callback = callback)
}
}
비밀번호나 지문등으로 인증을 시도하는 화면에서 인증을 안하고 그냥 뒤로가기를 눌렀을 때 앱이 그냥 종료가 되버리는데 뒤로가기했을 때 다시 웹뷰 화면으로 돌아갈 수 있도록 컨트롤 할 수 있는 방법이 있나요?