Net::ERR_UNKNOWN_URL_SCHEME 메시지가 뜹니다

phonegapp inappbrowser에서 카카오페이 결제 페이지를 여는데요.

웹에서는 정상작동 하는데 앱에서는 아래와 같이 뜹니다.


다음 이유로 intent://kakaopay/submit?txn_id=T111111111111#Intent;scheme=kakaotalk;package=com.kakao.talk;end의 웹페이지를 로드할 수 없습니다.
net::ERR_UNKNOWN_URL_SCHEME

검색 도중
https://devtalk.kakao.com/t/webview/20210
위의 글을 보게 되어 적용했는데 원하는 결과가 나오질 않네요…

모바일 웹에서는 카카오페이 페이지로 리다이렉션 된 뒤 카카오톡 앱이 실행되는데

앱에서는 카카오페이 페이지로 이동된 뒤 카카오톡 앱이 실행되지 않고 구글 스토어가 실행됩니다.

    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 {
                    view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(customUrl)));
                } catch (android.content.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);
                    view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(GOOGLE_PLAY_STORE_PREFIX + packageName)));
                }
                return true;
            }
        } else {
            return false;
        }
    }

코드 적용은 위 처럼 했습니다.

도움 부탁드립니다!!

적용한 소스에서 코드 아래에 customUrl을 한번 찍어보시겠어요?

customUrl : //kakaopay/submit?txn_id=T160930092534177

찍어본 결과 이렇습니다.

http://apogenes.com/220297281486

여기서 정보를 얻어 해결했습니다!

답변 감사했습니다.

5개의 좋아요

해결하셨다고 했는데 … inappbrowser.java 파일에서 shouldOverrideUrlLoading 안에 intent 관련 소스를 넣으니 phonegap build android 오류가 나는데요. …

Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
이부분이 문제더군요…ㅠㅠ

확인 가능할까요??

아 그리고 inappbrowser 웹뷰로 띄우신건 _blank 로 띄우신게 맞는지요??