Cordova 로 하이브리드 앱 개발시 JavaScript 지도 API 가 호출 후에 보여지지 않습니다. 지원이 안되는 건가요?

안녕하세요. Cordova를 이용해서 하이브리드 앱을 개발하고 있는데요.
하이브리드 앱이라서 HTML과 자바스크립트로 개발이 되기 때문에
카카오 맵 중에 Javascript API를 사용해야하는데 도메인을 가지고 있는 웹사이트가 아니기 때문에
location.href를 찍어보면 file:///android_asset/www/index.html 이런식으로 나옵니다.

그런데 자바스크립트 맵을 사용하려면 허용할 플랫폼 등록에 웹에 http://도메인 … 과 같은 형식으로 넣게 되어있고
file:///android_asset/www/index.html 이렇게 넣으면 어뷰징 경고글 띄우면서 file:// 이렇게만 들어가더군요.
그래서 이렇게 등록된걸로 허용이 되겠거니 했는데 아무리 해도 지도가 나오지 않더군요.

뭐 키 설정이나 다른건 전혀 문제가 없습니다. PC 로컬에서도 잘 실행해봤고, 화이트 리스트도 다 접근 되도록 해두었고,
실제로 https://dapi.kakao.com 로 잘 접근이 되어서 콘솔의 실시간 통계에도 호출 될 때마다 카운트가 되더군요.
결국엔 카카오 맵에서 하이브리드 앱에서 직접 호출 되는건 안되도록 막혀 있는 것 같은데 지원이 안되는게 맞나요?

다른 문의 글도 다 찾아봤는데 같은 문의는 많은데 정확한 답이 안되어 있더라구요.
그중에 하나는 코도바에서 웹에 만들어둔 카카오 지도를 웹뷰로 호출 했던 분인지 화이트 리스트 설치하고 됐다고 하는데
그건 웹서버에 지도 만들어 두고 접근 했던거 같으니 당연히 화이트 리스트로 처리가 됐을 것 같구요.

참고로 구글맵의 경우는 허용할 URL에 file_url//android_asset/www/index.html 이런식으로 등록하고 잘 사용되는데
카카오는 아예 등록 단계에서 막혀서 지원을 원래 안하는 건지 혹시 다른 방법이 있는건지 문의 드립니다.
예전 버전에서는 잘 쓰다가 안된다는 분도 계시는거 봐선 막아둔건가 싶기도 한데요… ;;

file:// 이렇게 등록이 되는거 봐선 뭔가 방법이 있으니까 해둔게 아닐까 싶어서 한참을 별 방법을 다 해봐도 안되네요. ^^;;;
답변 부탁드리겠습니다.
감사합니다 ^^

혹시 아래 링크도 보셨나요?
확인 부탁드립니다.

네 그 글이 제가 문의에 썼듯이 화이트 리스트 플러그인으로 해결 했다걸 본건데
그건 웹서버로 지도 만들어 두고 화이트 리스트 플러그인에서 해당 사이트를 화이트 리스트에 등록하고 웹뷰로 잘 보여졌다는 부분으로 보입니다.
웹서버에 있는걸 보여지게 연결만 하는게 아닌 하이브리드 앱 자체에서 자바스크립트로 직접 사용할 때 안되서 문의 드렸습니다. ;;

지금은 cordova 설치하면 기본적으로 화이트 리스트 플러그인이 설치되게 되어있고,
저도 웹쪽 연결을 많이 하다보니 화이트 리스트에 연결해야할 사이트는 다 등록을 합니다.
지금은 혹시 연결 안되는 사이트 있을까봐 전체를 화이트 리스트에서 접근 가능하게 풀어둔 상태거든요.

그래서 호출 할 때마다 정상적으로 카카오 맵 API 호출 통계에는 매번 접근된 정보가 남고 있구요.
화이트 리스트에서 막히면 아예 외부 페이지 호출이 안되거든요.
거기서 해결 됐다는 분은 다른 문제 인걸로 보입니다.

다른분 글중에 업체인데 기존 버전에서 정상적으로 사용하다가 버전 바뀌면서 안된다던 분이 있던데 그 문의는 해결이 안된 상태로 보이더라구요…

혹시 cordova로 웹사이트를 감싼게 아닌 코도바 앱 자체 자바스크립트로 호출해서 사용된 분이 현재 있나요?
file:///android_asset/www/index.html 이 페이지에서 호출이 되어야 되거든요.

제가 테스트 해본 결과

  1. file:// 프로토콜 등록
  2. AndroidManifest.xml 파일에서 android:usesCleartextTraffic="true" 옵션 추가

위에 2가지 추가하여 동작하는 것을 확인했습니다.

확인 부탁드립니다.

3개의 좋아요

와~ 한방에 처리 되었습니다. 정말 감사드립니다. ^0^
찾아보니까 안드로이드9 부터 적용된 보안 부분이라는데 하나 배워갑니다.
방금전에 포기할 뻔 했거든요~ ^^;;
감사합니다~

1개의 좋아요

저 혹시 프로토콜 등록이라는게 어디서 해야하는건가요?

내 애플리케이션 > 플랫폼 > 사이트 도메인에서 등록해주세요.