핸드폰에 카카오톡 설치되어 있습니다.
하이브리드 앱 가이드와 동일하게 개발했는데… 카카오톡으로 넘어가질 않고 있습니다.
https://developers.kakao.com/docs/latest/ko/javascript/hybrid#android-execute-kakaotalk
로그를 찍어 봤을 때
Could not parse anythings 로 나오고 있습니다.
카카오 URL은 카카오계정… 이렇게 넘어오고 있습니다.
request.url.scheme 도 https로 나와서 intent를 못타는거 같은데
해결 방법이 있을까요?
IOS은 가이드 방식으로 개발하니 잘넘어가서 로그인 처리가 되고 있습니다.
안녕하세요.
테스트 하신 기기에 카카오톡이 설치되어 있으신가요?
Log.e(TAG, “Could not parse anythings”) 로깅 시, intnet 값도 같이 확인 부탁드립니다.
또한, 가이드 처럼 if (request.url.scheme == "intent") { ...
코드로 intent 필터링 하고 계신게 맞으신지도 확인 부탁드립니다.
if (request.url.scheme == “intent”) {
조건 처리를 하지 않기에 Intent.parseUri()
에서 발생하는 오류 입니다.
해당 조건절은 필이 있어야 합니다.
카카오톡으로 로그인 가능한 경우, https://kauth...
가 아닌 intent://
로 시작하는 주소가 전달됩니다.
카카오 로그인 버튼이 있는 웹페이지 소스코드를 제공 부탁드립니다.
말씀하신 intent 조건절은 추가 되어 있습니다.
if (request.url.scheme == "intent") {
try {
//Log.d("TAG scheme", intent.getPackage().toString())
var intent = Intent.parseUri(request.url.toString(), Intent.URI_INTENT_SCHEME)
// 실행 가능한 앱이 있으면 앱 실행
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
//Log.d("TAG", "ACTIVITY: ${intent.`package`}")
return true
}
// Fallback URL이 있으면 현재 웹뷰에 로딩
var fallbackUrl = intent.getStringExtra("browser_fallback_url")
if (fallbackUrl != null) {
view.loadUrl(fallbackUrl)
//Log.d("TAG FALLBACK", "FALLBACK: $fallbackUrl")
return true
}
//Log.d("TAG url", request.url.toString())
Log.e("TAG", "Could not parse anythings")
}catch (e: URISyntaxException) {
Log.e("TAG", "Invalid intent request", e)
}
}
Log.d("TAG", "return false")
return false
}
카카오 로그인 웹 소스입니다.
// kakao login start
Kakao.init('카카오 키');
// login button
function loginWithKakao() {
// 로그인 창을 띄웁니다.
Kakao.Auth.login({
success: function(authObj) {
//alert(JSON.stringify(authObj));
$("input[name=access_token]",document.snsloginFrm).val(authObj.access_token);
$("input[name=refresh_token]",document.snsloginFrm).val(authObj.refresh_token);
// 로그인 성공시, API를 호출합니다.
Kakao.API.request({
url: '/v2/user/me',
success: function(res) {
//alert(JSON.stringify(res));
kakaotokInputData(res);
},
fail: function(error) {
//alert(JSON.stringify(error));
alert("로그인에 실패하였습니다.");
}
});
},
fail: function(err) {
//alert(JSON.stringify(err));
alert("로그인에 실패하였습니다.");
}
});
};
웹 소스의 loginWithKakao() 는 어떻게 호출되고 있나요?
사용자의 버튼 이벤트에서 호출되고 있는게 맞을까요?
카카오톡을 사용하는 간편로그인 기능은 Kakao.Auth.authorize()
를 사용 부탁드립니다.