기본브라우저 shouldOverrideUrlLoading

안녕하세요 갑자기 내용 중에 문의 드려 죄송합니다.
혹시 불필요한 절차이지만, 현재 저희 서비스는 앱->갤럭시 폰의 기본 브라우저(삼성 브라우저 카카오톡 로그인 시도) 호출 의 절차로 동작을 하고 있습니다.
(앱에서 웹을 호출한 상황)웹에서 위의 카카오 api 인 v1 Kakao.Auth.login 함수를 사용하여 진행을 하고 있는 상황에서 해당 단말기에 카카오톡 앱이 깔려 있지 않은 상황입니다.
이러한 경우에 기존 웹 브라우저를 호출한 경우 앱에서는 더 이상 shouldOverrideUrlLoading 에 콜백을 받지 못하여 앱에서 무언가 해줄 수 없을 것 같은데 해당 상황에서도 앱에서 추가 처리가 필요한 것일까요?

안녕하세요.

어떤 상황인지 확인 가능한 사이트 URL 기재 부탁드려요.

안녕하세요 저희 URL 페이지는 현재 개발 진행 중으로 내부만 오픈된 상태입니다.
혹시 확인해 보시려는 IP 정보를 공유해 주실 수 있을까요? 내부 방화벽 정책 변경을 해서 접속 가능한 IP를 white list 등록을 진행해야 접속이 가능해서 문의 드립니다.
추가로 테스트하다 발견한 내용이 현재 삼성 브라우저를 기본 브라우저로 선택하면 동작을 하지 않고, 크롬이나 파이어폭스등은 정상 동작을 하는데 혹시 삼성 브라우저는 동작이 다른 부분이 있을지 문의 드립니다.

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>대시보드 우측 상단에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456

@tambot
안녕하세요 말씀하신 앱ID는 1053039 입니다.

안녕하세요.

설치된 삼성 브라우저의 버전은 어떻게 되나요?

Kakao.Auth.login는 팝업 방식 로그인이고 삼성 브라우저 예전 버전에서 팝업내 스크립트 실행이나 인텐스 스킴 호출 못하는 현상이 있었는데요.

우선, 최신버전 삼성 브라우저인지 먼저 확인해주시겠어요?

@tim.l
테스트 중인 5대 폰 삼성 인터넷 확인 결과 현재 최신 버전인 26.0.3.7 버전을 사용 중 입니다.

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

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


안녕하세요,
현재 온라인 쇼핑몰 구축 중에 있고 Kakao 를 소셜로그인 옵션으로 제공하려 합니다.
쇼핑몰은 Native App 형태이나 고객 로그인은 별도의 Webpage 에서 진행되고 있습니다.
App 과 별도 Webpage 의 로그인 세션 관리는 openID 를 통해서 진행하고 있고요.
이러한 이유로 Native App 에서 로그인 버튼을 누르면 해당 Webpage 으로 고객을 Custom Tab 을 통해 Redirect 시킵니다.

문제는 KakaoTalk App 이 미설치 되었을때 발생합니다.

Android 의 기본브라우저가 Chrome 이나 Firefox 로 설정되어 있을경우에는 정상적으로 카카오 웹페이지로 이동하여 정상로그이 처리 됩니다만, 만약 기본브라우저가 삼성인터넷 으로 설정되어 있는 경우에는 페이지가 지속해서 rendering 하는 문제가 발생합니다.

URL 상에는 intent:#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY;launchFlags=0x08880000;S…

이라고 나오는것으로 보아, KakaoTalk App 이 미설치 되었음에도 지속해서 deeplink 를 통해 KakaoTalk 을 열려는 시도를 하는것 같습니다만, 정확한 원인을 찾지 못하고 있습니다.

관련하여 도움을 요청 드리고 싶습니다.

감사합니다!

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>대시보드 우측 상단에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456

안녕하세요 @tambot 님,
답변 감사 드립니다.
앱 ID 는 1053039 입니다.
감사합니다!

@솔빈_채빈3179 @qogudrms18467

안녕하세요. 동일 디벨로퍼스앱 문의라 토픽 취합하였습니다.
몇가지 재현 테스트 해보고 삼성 브라우저 정책인지 확인해보겠습다.
(빠르게 확인은 어려운점 양해부탁드립니다.)

다만, JS SDK v1 Kakao.Auth.login 팝업방식 로그인은 JS SDK v2에서 더이상 지원하지 않고 있으며
리다이렉트 방식인 authorize 사용을 권장드립니다.

점차 여러서비스들에서 팝업을 제약하는 추세라 검토해보시면 좋을 것 같습니다.

ex) 모바일 기본브라우저 팝업내 사용자 액션없이 자동실행되는 스크립트, 스킴 실행불가, 인스타그램/페이스북 인앱브라우저 팝업 미지원 등.

@tim.l
안녕하세요 위의 내용은 잘 이해하였습니다.
다만, 질문의 요지는 삼성 브라우저 최신 버전에서 카카오 SDK의 동작에 관한 문의 부분이 주요 이슈 인것 같습니다.
저희가 기존에 v2의 authorize를 사용해도 동일한 현상이 발생하여 굳이 SDK 버전업을 하지 않고 auth.login을 사용한 상태라 말씀하신 대로 최신 방식을 사용은 내부에서 확인해 보도록 하겠습니다.

즉, 삼성 브라저(최신버전)와 카카오 SDK 호출간 정상적인 호출이 되지 않는 부분 해결에 대한 방법을 확인 부탁 드립니다.

@tim.l 님, 참고로 custom tab 으로 삼성 브라우저를 열지않고 직접 URL 을 치고 들어가서 카카오로그인을 시도하면 (카카오앱이 설치되지 않은 상태) 정상적으로 카카오 로그인 웹페이지로 이동합니다. 이점도 참고 부탁 드리겠습니다. 감사합니다!

@솔빈_채빈3179 @qogudrms18467 cc. @woody.ho @holden.joo

안드로이드앱내 Custom Tab 으로 띄운 사이트로 몇가지 테스트 디버깅 해봤습니다.

image

카카오 SDK는 위와같이 Javascript location.href로 인텐트 스킴을 호출할뿐이므로 SDK문제라기보다는
커스텀탭에서 구동되는 삼성브라우저 문제로 보는게 적절해보입니다.

우선 우회방법으로 앱레벨에서 카카오톡 설치 여부 체크 후, 카카오톡이 미설치된 상황이라면
Kakao.Auth.authorize의 throughTalk을 false로 설정하셔서 스킴호출하지 않는 카카오계정로그인 방식 로그인 처리 해주시면 좋을 것 같습니다.

Auth - Kakao JavaScript SDK

      Kakao.Auth.authorize({
        redirectUri: "",
        throughTalk: false
      });

@tim.l
우선 자세한 설명 너무 감사합니다.
설명 주신 부분이 앱(native)에서 카카오톡의 패키지 설치 여부를 판단하고 없으면 커스텀탭(삼성브라우저)으로 해당 설치 여부값을 전달하고 삼성브라우저쪽에서 작성해 주신 부분으로 웹에서 진행을 하라는 말씀이 맞으실까요?
혹시 웹(javascript) 에서 설치 여부를 판단할 수 있는 방식이 있다면 혹시 링크나 방법 공유 가능하다면 부탁 드립니다.

감사합니다.

설명 주신 부분이 앱(native)에서 카카오톡의 패키지 설치 여부를 판단하고 없으면 커스텀탭(삼성브라우저)으로 해당 설치 여부값을 전달하고 삼성브라우저쪽에서 작성해 주신 부분으로 웹에서 진행을 하라는 말씀이 맞으실까요?

네넵, 맞습니다.

https://kakao-tam.tistory.com/85
or
https://gist.github.com/springcome/7098155


혹시 웹(javascript) 에서 설치 여부를 판단할 수 있는 방식이 있다면 혹시 링크나 방법 공유 가능하다면 부탁 드립니다.

웹브라우저에서 설치여부를 판단하는 방법은 없고
인텐트 스킴 호출 실패 시, 카카오 계정 로그인 페이지로 이동되도록 SDK가 구현되어 있는데요.
(크롬에서는 정상작동)

삼성브라우저에서 실패가 아닌 펜딩상태로 대기 하기때문에 사실상 판단할 방법이 없네요.

검토 부탁드려요.