안녕하세요. 최근 저희 서비스에 카카오 로그인을 적용하려고 합니다.
현재 저희 서비스는 스프링으로 되어져 있고, 안드로이드 네이티브 소스에 웹뷰로 실행되어 지고 있습니다.
참고한 내용으로는 아래 링크를 참고 하였고
https://developers.kakao.com/docs/latest/ko/getting-started/sdk-js#hybrid-app
자바스크립트 코드로 Kakao.Auth.authorize 를 이용하여 보내고 있습니다.
하지만, 웹뷰 상에서 카카오 로그인 버튼을 클릭하면, 연결프로그램이 뜨고 연결프로그램으로 카카오톡을 클릭하면 카카오톡이 실행되지만, 여기서 카카오톡만 실행될 뿐 어떠한 액션이 이루어 지지 않습니다.
혹시 이 부분에 대해서 왜 이런지 알 수 있을까요?
안녕하세요.
안드로이드 네이티브 코드에서 shouldOverrideUrlLoading
메소드를 어떻게 구현하셨는지 알려주세요.
혹시 동일한 환경에서 저희 JS SDK 데모를 실행시켜도 동일한 현상이 있는지 확인 부탁드려요.
빠른 답변 감사합니다.
코드는 아래와 같습니다.
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url = "";
if (request != null && request.getUrl() != null) {
url = request.getUrl().toString();
}
if (url.contains("intent:#Intent")) {
if (request.getUrl().getScheme().equals("intent")) {
try {
Log.d(TAG, "TEST : ACTIVITY: ${intent.`package`}");
// Intent 생성
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
// 실행 가능한 앱이 있으면 앱 실행
if (intent.resolveActivity(view.getContext().getPackageManager()) != null) {
view.getContext().startActivity(intent);
Log.d(TAG, "TEST : ACTIVITY: ${intent.`package`}");
return true;
}
// Fallback URL이 있으면 현재 웹뷰에 로딩
String fallbackUrl = intent.getStringExtra("browser_fallback_url");
if (fallbackUrl != null) {
view.loadUrl(fallbackUrl);
Log.d(TAG, "TEST : FALLBACK: $fallbackUrl");
return true;
}
Log.e(TAG, "TEST : Could not parse anythings");
return true;
} catch (URISyntaxException e) {
Log.e(TAG, "TEST : Invalid intent request", e);
return false;
}
}
}
그리고 데모페이지에서도 같은 현상이 발생하는것을 확인하였습니다.
또한 웹 뷰 내 자바스크립트를 보면 아래와 같은 값이 반환이 됩니다.
GET : https://kauth.kakao.com/apiweb/code.json?client_id=*****&auth_tran_id=qq5dcwbsts24077b12ac18b11a96696382ccaa7138knnutfnv&ka=sdk%2F1.39.14%20os%2Fjavascript%20sdk_type%2Fjavascript%20lang%2Fko-KR%20device%2FLinux_armv8l%20origin%2Fhttps%253A%252F%252Fmaqa.서비스명.co.kr
error: "not_found_auth_code"
error_code: "300"
error_description: "can't get an authorization_code"
status: "error"
혹시 문의해주신 현상의 화면을 녹화해서 업로드 해주실 수 있으신가요?
공개하시기 어려우시면 메시지로 보내주셔도 됩니다.
저희 환경에서는 재현되지 않아 양해부탁드립니다.
@holden.joo닙
감사합니다.
해당 이슈는 앱 업데이트가 정상적으 되지 않았던 이슈로 판명되었고
해결하였습니다.
다시한번 감사합니다.
2개의 좋아요