안드로이드 하이브리드앱으로 카카오인증로그인의 로그인 구현 시 문의

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


SDK 2.5.0 버전

K2100 서비스 구현을 위해 JavaScript SDK를 사용해 카카오로그인 하이브리드앱 개발 작업을 진행중에 있습니다. 작업시 하이브리드 앱가이드를 참고 하여 진행하는데

https://developers.kakao.com/docs/latest/ko/javascript/hybrid

해당 링크 내용 중 ‘팝업 웹뷰 처리’ 에 대한 작업을 한 후 테스트를 하려고 합니다.

이 작업에 대해 문의 드립니다.

  1. 카카오 연동 중 팝업 웹뷰에 대한 시나리오(아래 함수들이 호출 되는 시나리오)를 확인 할 수 있는 방법을 알고 싶습니다.

window.open() → onCreateWindow()

window.close() → onCloseWindow()

  1. 폰에서 카카오톡 앱이 설치되어 있지 않은 단말에서 webview 내부에서 카카오 로그인을 실행하면 window.open() 가 실행되어 카카오 로그인창이 새로운 popup에 실행되어야 할것 같은데 그렇게 동작하지 않는다고 합니다. 해당 시나리오에서 popup이 실행되는게 맞는지 확인 부탁 드립니다.

  2. 아이폰같은 경우에 앱 안깔려있으면 카카오로그인화면이 뜨는데, 뒤로 돌아가는 버튼이 없으니 화면을 백할수가 없습니다. 혹시 이 경우에는 따로 화면을 돌릴 수 있는 방법이 있는지, 아니면 따로 구현을 해야하는지 문의 드립니다.

  3. 안드로이드에서 앱스킴으로 카카오톡 로그인 요청을 할때
    카카오톡 앱은 설치 되어있고, 카카오톡앱에서 권한설정 하고 로그인 화면까지 간 상태에서 로그인을 하지않고있는 경우
    intent를 호출해서 카카오톡 앱을 실행해서 로그인을 진행하려고 하는데, 앱에서는 카카오톡앱이 실행되었다고 간주되어 return을 기다리고있는데, 카카오톡 앱이 자동으로 뜨지를 않습니다. 그래서 앱에서는 계속 대기중인 상태로 되어있고, 카카오톡 앱으로 자동으로 연결되지않아 직접 카톡앱을 눌러서 들어가면 처음 로그인 화면으로 되어있습니다.
    이 문제가 생기는 이유와, 이 경우에는 어떻게 해야할지 문의 드립니다.

감사합니다.

안녕하세요.

개발하신 웹에서 팝업을 처리하는 경우, 웹뷰에서 팝업 처리를 해줘야 부모창으로 값전달및 돌아가기가 정상 처리되는데요.

JavaScript SDK는 K2100는 팝업을 띄우지 않습니다.
카카오톡으로 인증 요청 성공 후, redirectUri 로 리다이렉트 하는 방식입니다.

각종 브라우저들이 팝업에서 외부 앱 실행을 제약하고 있어서 더이상 JavaScript SDK 팝업을 제공하지 않으며,
모바일 기기에서 팝업이나 리다이렉트나 동일한 인터페이스로 동작하는터라 사용성에도 별 차이가 없습니다.


1, 2. 팝업으로제공하지 않습니다.

  1. K2100 서비스는 카카오톡으로 인증하는 서비스인데, 카카오톡이 설치안된 기기에서 다른기기에 설치된 카카오톡 연동계정으로 인증하신다는 의미일까요?

카카오톡에서 인증 후, 인증완료 버튼 선택하면 리다이렉트 URI로 이동하는데
카카오톡이 설치안되어 카카오 계정로그인 하는 경우
개발하신 앱내 인앱브라우저에서 뒤로 가기는 직접 구현하셔야합니다.

  1. K2100 서비스는 해당 기기에 설치된 카카오톡으로 인증할 수도 있고, 톡이 설치안된경우 계정로그인하여 다른기기에 해당 계정 연동된 톡으로 인증 할 수도 있습니다.

안드로이드 기기에서
(1) 카카오톡이 설치되어 있지 않으면 계정로그인하고
(2) 카카오톡이 설치 만 되어 있으면, 카카오톡앱을 띄워 로그인 페이지를 띄우고 권한 허용 컨펌창이 뜹니다.
(3) 카카오톡이 설치 만 되어 있고, 권한 허용까지만 한 경우 인증 요청 시,

카카오톡에서 Activity간통신으로 NotSupportedError에러를 전달하는데요.
iOS와 달리 Android에서는 브라우저에서 응답을 못받는 알려진 이슈가 있습니다.

이러한 상황자체가 정상적인 상황이 아니므로 따로 조치 안하셔도 무방할듯하나 정교한 처리를 원하시면 아래와 같이 처리 해주시면됩니다 :

안드로이드 인앱 브라우저의 경우 아래 예제에서 “사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,” Flow 참고하셔서 현재 카카오톡 설치 여부 및 로그인 여부에 따라 카카오톡 로그인 마무리 하도록 안내 메시지 띄우시면 좋을 것 같습니다.

Android 카카오 로그인 구현 예제 : 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
Android | Kakao Developers Android

안녕하세요.

답변 주신 내용 관련 문의드립니다.

JavaScript SDK는 K2100는 팝업을 띄우지 않습니다.
카카오톡으로 인증 요청 성공 후, redirectUri 로 리다이렉트 하는 방식입니다.

각종 브라우저들이 팝업에서 외부 앱 실행을 제약하고 있어서 더이상 JavaScript SDK 팝업을 제공하지 않으며,
모바일 기기에서 팝업이나 리다이렉트나 동일한 인터페이스로 동작하는터라 사용성에도 별 차이가 없습니다.
  1. Javascript SDK 를 사용할 때 더이상 팝업을 안띄운다는거 같은데,
    그렇다면 현재 가이드 문서 “Javascript > 하이브리드 앱 가이드” 에 있는 내용 중,
    “팝업 웹뷰 처리” 부분은 진행 안해도 무방한 것인가요?
    하이브리드 앱 가이드 | Kakao Developers 하이브리드 앱 가이드

  2. iOS 에서도 “팝업 웹뷰 처리” 는 안해도 되는거죠?

  3. K2100 이 뭔지요?

감사합니다.

https://devtalk.kakao.com/t/javascript/137520/2