안드로이드 4.4 웹뷰 사용시 카카오링크가 전송이 되지 않습니다

처음 개발할때는 정상적으로 자바스크립트로 카카오톡 링크가 됬었는데 몇일전부터
intent:kakaolinke://send 하면서 웹페이지를 표시할수 없다고 뜨네요

G-pro2,
4.4

개발자 사이트의 링크 데모들이 모두 같은 현상입니다.

webView에서 자바스크립트 호출을 하였습니다.

3개의 좋아요
     private void loadkakao(String url) {
       try {
        		Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            	intent.addCategory(Intent.CATEGORY_BROWSABLE);
            	intent.putExtra(Browser.EXTRA_APPLICATION_ID,getPackageName());
            	startActivity(intent);
        	} catch (ActivityNotFoundException e) {
        		  Intent intent = new Intent(Intent.ACTION_VIEW);
        	  intent.setData(Uri.parse("market://details?id=" + "com.kakao.talk"));
        	  startActivity(intent);
          Log.d(TAG, "카카오톡이 설치되어있지 않음 : " + e.toString());
        	} catch (Exception e) {
        		  Log.d(TAG, "기타에러 : " + e.toString());
        	}
    }

자꾸 카카오톡이 설치가 안되어있다고 그러네요 ㅜㅜ

안녕하세요, 갤럭시s3 에서 에러가 나고 있습니다 글과는 오류 상황이 약간 다른 것 같아 새로운 토픽으로 이동하였습니다.

안드로이드 4.4 SDK부터 웹뷰가 Chromium기반으로 변경되면서, User-Agent에는 Chrome이 포함되지만 Intent를 지원하지 않아서 발생하는 문제입니다.

아래와 같이 직접 Intent를 핸들링 하실 수는 있습니다.
(웹뷰의 경우 커스톰하게 변경할 수 있는 요소들이 있어서 공식 지원 대상에 포함되지는 않음을 알려드립니다.)

     private class MyWebViewClient extends WebViewClient {
        public static final String INTENT_PROTOCOL_START = "intent:";
        public static final String INTENT_PROTOCOL_INTENT = "#Intent;";
        public static final String INTENT_PROTOCOL_END = ";end;";
        public static final String GOOGLE_PLAY_STORE_PREFIX = "market://details?id=";

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith(INTENT_PROTOCOL_START)) {
                final int customUrlStartIndex = INTENT_PROTOCOL_START.length();
                final int customUrlEndIndex = url.indexOf(INTENT_PROTOCOL_INTENT);
                if (customUrlEndIndex < 0) {
                    return false;
                } else {
                    final String customUrl = url.substring(customUrlStartIndex, customUrlEndIndex);
                    try {
                        getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(customUrl)));
                    } catch (ActivityNotFoundException e) {
                        final int packageStartIndex = customUrlEndIndex + INTENT_PROTOCOL_INTENT.length();
                        final int packageEndIndex = url.indexOf(INTENT_PROTOCOL_END);

                        final String packageName = url.substring(packageStartIndex, packageEndIndex < 0 ? url.length() : packageEndIndex);
                        getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(GOOGLE_PLAY_STORE_PREFIX + packageName)));
                    }
                    return true;
                }
            } else {
                return false;
            }
        }
    }
3개의 좋아요
하이브리드앱과 카카오링크
안드로이드 웹뷰에서 ..카카오링크 하는방법이 ?
하이브리드앱에서 카카오링크, 카카오스토리 글등록이 킷켓 버전부터 안되네요
안드로이드 하위 버전(4.4.2이하) 하이브리드앱에서 웹뷰로 카카오링크 연결은 어떻게 하나요?
[카카오링크] 폰갭 플러그인 지원 계획은 없나요?
하이브리드앱 webview 에서 카카오링크
카카오톡링크 웹앱 실행관련
Cordova 프로젝트 안드로이드 4.4
워드프레스 홈페이지를 웹뷰작업을 하였는데 카카오톡공유하기를누르면 intent:kakaolink:// 발생합니다
하이브리드앱 (안드로이드) 에서 카카오 링크
Javascript 카카오링크 보내기 에러
카카오톡링크 웹앱 실행관련
웹뷰 로그인 문의드립니다
카카오 링크에서 카카오톡 미 호출 문의
카카오스토리 앱 공유 문제가 있습니다
카카오톡의 링크 보내기 카카오톡 스토리의 공유 버튼은 javascript을 이용해서 어플 webview에서 제대로 작동하게 하고 싶은데 이건 가능한가요?
특정 상황에서 네이버 블로그 > 카카오톡 공유하기가 안됩니다
메일에서 카카오링크 버튼구현 가능한가요?
[카카오톡 링크, 안드로이드 인앱브라우저] 웹에서 카카오톡 링크선택시 안드로이드 WebView의 shouldOverrideUrlLoading API가 호출되지 않습니다
카카오내비: 네트워크 오류가 발생하였습니다
PhoneGap / Cordova 에서 카카오링크를 이용하려면 어떻게 해야 하나요?
카카오싱크 관련 웹뷰 띄울 시 ERR_UNKNOWN_URL_SCHEME webview 오류 문의 드립니다
카카오링크-자바스크립트 오류 문의

우왕… 해결되었습니다. 정말 감사합니다.

3개의 좋아요

저도 해결이 되었어요 감사합니다~

2개의 좋아요

이 코드를 적용해서 확인해보았는요.
카카오 앱이 깔려있으면 정상동작하는데, 앱이 없으면 마켓 설치로 이동해야되잖아요?
그런데 이동을 안하네요…
확인해보니까 final String packageName = url.substring(packageStartIndex, packageEndIndex < 0 ? url.length() : packageEndIndex); 여기 packageName에 package=com.kakao.talk 이 들어가있네요 ㅎㅎ
저처럼 삽질하지마시고 안되시는분들은 package= 는 빼고 적용하시길~

3개의 좋아요

지원 여부를 떠나 intent:kakaolink:// 라는 형식 자체에 대한 고민이 필요하지 않을까 싶습니다.

2개의 좋아요

형식이 지금
intent://join?l=sy6qczo&r=ew%3ahttp%3a%2f%2fxn--ou6bo7j.net%2f#intent;scheme=kakaoopen;package=com.kakao.talk;end
게 바뀌는 바람에 또 글짜조합했네요…

1개의 좋아요