err_unknown_url_scheme
안드로이드 개발자인데 토스 결제를 추가했는데 위의 오류가 나서 토스 개발자 페이지를 보고 수정을 해서 오류가 안떠서 안심을 했는데 토스가 깔려 있지 않은 상태에서 테스트를 했는데 토스 설치 안내 페이지까지 뜨는데 그 페이지에서 다음 버튼을 누르면 다시 err_unKnown_url_scheme 에러가나요.
54 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
토스가 깔려 있지 않을 경우 "토스페이로 결제하려면 다음을 눌려주세요."라는 문구가 있는 페이지가 나오는데 거기에서 다음을 눌렀더니 err_unknown_url_scheme 오류가 났어요
결제창은 웹뷰로 띄우고 계실까요??
네 웹뷰요
설치가 안되있으면, market:// 으로 시작하는 Url로 이동하는데
웹뷰에서 해당 헤더를 읽지 못해서 그렇습니다.
해당 오류코드로 구글 검색해보시면 여러 해결책을 확인하실 수 있습니다.
켭쳐 사진을 보여드릴까요?

아뇨 설치가 되어 있지 않다면 마켓으로 이동됩니다
저기에는 마켓으로 인한 오류라고 안떠서
웹뷰(WebView)에서 외부 앱 열기 | 토스페이먼츠 개발자센터
브라우저가 아닌 모바일 웹뷰로 결제창을 띄울 때 카드사별 결제수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보세요.
오류만 그렇게 표시되는거에ㅛㅇ?
여기 확인해보셨나요?
저 오류는 토스를 설정에 추가하지 않으신 것 같습니다. 이사원님 보내주신 링크를 참고해서 설정에 추가 해 주시기 바랍니다.
마켓이동도 직접 구현안하면 안넘어가요~
흠
네 근데 오류는 토스로 호출을 못하는 오류네요~
저 원래 토스 결제 연동되어있엇고
최근에 저 오류가 나서
마켓으로 안넘어 간거면 market:// 에 대해서 오류가 나있어야 하는데..
알려주신 링크로 가서 수정했어요
잘되는데 토스 없을때만
저렇게 오류나서
저거 외부 브라우저로 이동하는거죠?
if (!packageName.isNullOrBlank()) {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$packageName")
)
)
이거 추가해주시면 될것 같아요
토스앱없어서 외부 브라우저로 이동하면서, 브라우저가 읽지 못하는 사이트라서 그렇습니다.
이게 어떤 브라우저 일까요?
브라우저에서 저렇게 웹뷰의 네이티브 오류를 띄우진 않는데..
웹뷰에요
앱에 들어잇는 웹뷰요
아니요 열린 앱이 웹뷰가 아니라 브라우저이신데요.
웹뷰로 만든 앱내에 구현되어있는 브라우저에요
웹뷰 안에 브라우저를 구현하신건가요?
그렇군요..
저 주소창도 제가 만든거고요
기존 코드의 startSchemeIntent 부분에 이 부분이 존재하는지 확인 부탁드릴게요.

잠시만요
혹시 어떤 언어로 개발중이실까요.
위에 보내드린 코드는 코틀린입니다.
자바의 경우 startSchemeIntent 함수 안에 아래 코드가 존재하는지 확인이 필요합니다.

있어요
있어요
자바이신가요?
네 자바입니다
그리고 제가 앱을 두개를 관리하는데
한개는 다 잘되는데
하나만 실패시에만 저 에러가 나요
앱 코드가 다를 수 있어서 그 부분은 상관이 없을 것 같습니다.
그런데 둘다 baseweb이라고 기본적인것만 적용한 클래스를 같이써요
둘 다 결제처리하는 클래스가 같은가요?
클래스에 코드가 같은가요?*
웹에서 결제하고 그걸 앱에서 shouldover.. 이 함수에 받는 이 부분이 같아요
이상하네요.
질문이 있는데요. 보통 토스가 깔려 있으면 바로 토스로 가고 토스가 없을때는 웹페이지가 뜨잖아요
아니에요..
그래요?
토스가 설치되어있든 말든 토스 결제페이지가 뜨게 됩니다.
pay.toss.im/~~~
거기서 결제하기 버튼을 클릭해야 호출이 됩니다.
안되는것만 계속봐서 착각햇나봐요
원인은 알거 같습니다
인텐트가 일단 스킴으로 잘 변환은 된거 같아 보이구요
스킴에서 호출하는데 지금 실패하고 계신건데.. (앱이 없어서)
넵
문제점은 스킴 호출에 오류가 나면 자동으로 마켓스킴 으로 바뀌게 코드를 드렸습니다.
근데 해당 try catch문이 작동하지 않는것 같네요.
네 그럼 다시 그부분을 확인해볼게요
이런 상황인 것 같습니다.
startActivity(schemeIntent)가 앱 미설치 사유로 ActivityNotFoundException을 throw하게 되고
그걸 catch하여 앱이 만약에 없다면 startActivity로 마켓을 호출하게 되는데 여기가 작동하지 않았습니다.
제가 추측할 수 있는 것은 catch문으로 넘어가질 않았거나, TextUtils.isEmpty에서 이상하게도 false가 나와 if문을 빠져나와버려 함수가 실행되지 않고 끊긴 경우입니다.
private static boolean doFallback(WebView view, Intent parsedIntent, Activity activity)
제가 안드로이드를 기초부터 배운게 아니라 중간에 회사에서 급해서 안드로이드를 수정하게 되었는데요
혹시 이 함수가 웹뷰에 기본 함수 일까요?
아니요 private로 되어있는것은 귀사에서 선언한 함수입니다.
표준 함수를 커스텀하시는 경우 앞에 @Override가 붙어있을겁니다.
네 말씀하신데로 그부분을 확인해볼게요
감사합니다
약간 추가정보를 드리자면
디버거 기능으로 해당 try catch가 걸리고 있는지
걸리고 있다면 if문에서 제대로 넘어가는지 확인 부탁드릴게요
넵
제 실수 였네요;;;
두개의 앱을 관리하고 있는데 잘못된 코드임에도
하나는 잘되고 하나는 안되서 헛갈렸어요
두개 다 안되었으면 더 쉽게 답을 찾을 수 있었을텐데
감사합니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.