코딩하는 일용직 노동자

카카오링크 net::ERR_UNKNOWN_URL_SCHEME 처리하기. 본문

안드로이드

카카오링크 net::ERR_UNKNOWN_URL_SCHEME 처리하기.

bacass 2020. 12. 29. 20:07

개발중인 하이브리드 앱의 웹뷰에 카카오톡으로 공유하기 기능이 있는데 카카오톡으로 이동도 하지 않고
net:ERR_UNKNOWN_URL_SCHEME 에러가 발생했습니다.

ERR_UNKNOWN_URL_SCHEME 에러


구글신에게 검색해보니 a href 에서 앞에 intent: 만 제거해서 붙이는 방법이 있었고

WebViewClient 의 shouldOverrideUrlLoading() 에서 처리해주는 방법이 있었습니다.

저는 shouldOverrideUrlLoading() 에서 아래의 소스를 추가해서 문제를 해결했습니다.

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    LogUtil.e("shouldOverrideUrlLoading :: " + url);

    try {
        /**
            * 201229
            * 카카오링크 오류 수정을 위해 아래 if문을 추가함.
            */
        if (url != null && url.startsWith("intent:kakaolink:")) {
            try {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                Intent existPackage = getPackageManager().getLaunchIntentForPackage(intent.getPackage());
                if (existPackage != null) {
                    startActivity(intent);
                } else {
                    Intent marketIntent = new Intent(Intent.ACTION_VIEW);
                    marketIntent.setData(Uri.parse("market://details?id=" + intent.getPackage()));
                    startActivity(marketIntent);
                }
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    
    return false;
}