하이브리드앱내 웹뷰에서 카카오내비 API(javascript) 호출 문의입니다

안녕하세요,
현재 진행중인 프로젝트에서 카카오 내비를 연동하는 작업을 진행중입니다.
개발된 모바일 앱은 하이브리드 앱 형태로 되어있으며, 개발된 모든화면은 웹뷰로 구성되어있습니다.
그렇다보니, 카카오내비 api 호출하는 부분도 javascript api를 참조하여 진행중입니다.
카카오에서는 웹뷰는 공식 지원하지 않는다고 되어있으나,
현재 개발된 구조상 웹뷰를 통해 호출할 수 밖에 없는 상황이라 문의드리는 점 양해바랍니다.

웹뷰를 통해 카카오내비 api를 호출하기 위해 WebViewClient 클래스의
shouldOverrideUrlLoading()매서드를 intent:// url scheme 실행되도록 수정하였습니다.
이렇게하고보니, 오류창은 뜨지않으나, 바로 Google App Store로 넘어가는것 같습니다.

현재하고자 하는 방향은 javascript 데모 페이지처럼 버튼 클릭하여 카카오내비 api 호출시
웹브라우저상에 카카오내비 길안내 화면이 바로 표시되는겁니다.
사용하고있는 단말기가 업무용으로 지급되어,
구글계정 등록없이 사용되고있는 환경이라 App Stroe에서 내비App 다운로드없이 위 방법대로 구현하고자 합니다.

하이브리드앱내에서 웹뷰를 통해 카카오내비 api(javascript)를 호출하여
위와 같이 브라우저창에 바로 길안내 기능을 표시할수있는 방법을 문의 드립니다.

제가 놓친부분이 있는건지 아니면 불가능한건지 답변바랍니다.

아래는 웹뷰 클래스 수정시 참고한 소스 부분입니다.
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;
        }
    }
}

앱 미설치 시 Android Intent 스펙(https://developer.chrome.com/multidevice/android/intents)에 따라서 S.browser_fallback_url 로 이동하게 되어 있습니다.

웹뷰의 경우 해당 스펙을 지원하지 않기 때문에 별도의 처리가 필요해 보입니다.
웹뷰에서 받은 url 값 중에 S.browser_fallback_url(카카오내비 웹 길안내 URL)을 파싱해서 구글플레이스토어 주소 대신에 할당하면 가능할 것 같아요.

getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(GOOGLE_PLAY_STORE_PREFIX + packageName)));

네, 감사합니다.
웹뷰에서 받은 url 값중 "S.browser_fallback_url"에 해당하는 url 값을 파싱하여 해결하였습니다.