Android Emultator에서 localhost에 설치된 SPA 및 API까지 localhost 상태로 연결
SPA 개발에서는 AWS 람바다, 아주펀션, Firebase Function 등에 API를 구축하고, 프런트엔드는 대부분 S3, Firebase Hosting, Netlify 등 접대 서비스에 구성한다.
이런 것들을 개발할 때 현지에서
ttp://localhost:3100/api/ping
등으로 변경될 수 있습니다.휴대전화 동작을 확인하기 위해서는 크롬 등 개발자 도구로만 외관을 바꿀 수 있지만, 실제 기기에 더 가까운 환경으로 안드로이드 시뮬레이터를 사용할 수도 있다.
안드로이드 시뮬레이터는 본 PC와 다른(독립된) 네트워크에 위치하기 때문에 시뮬레이터 내
localhost
는 당연히 시뮬레이터 자체를 표시하기 때문에 시뮬레이터 내 브라우저에서 PC에서 실행되는 SPA를 개발할 때 SPA에서 API 서버localhost:3100
에 도달하지 못해 오류가 발생할 수 있다.시뮬레이터에서 그 개발 PC(호스트 PC)에 대한 접근은
10.0.2.2
에서 가능하기 때문에 ttp://localhost:3100/api/ping
를 ttp://10.0.2.2:3100/api/ping
로 바꾸면 동작하지만 일일이 다시 쓰는 것도 번거롭다.아날로그 내의 특정 포트에 대한 통신을 호스트 PC로 전송하는 기능이 있었으면 좋겠다고 생각했는데... 사실 있어요!
adb reverse tcp:3100 tcp:3100
시뮬레이터 내ttp://localhost:3100/api/ping
는 호스트 PC로 전송되고 SPA는 정상적으로 작동한다.SP A 액세스
adb reverse tcp:3200 tcp:3200
면 시뮬레이터에서도 사용할 수 있다ttp://localhost:3200/indesx.html
.Android 응용 프로그램에서 WebView에 액세스하는 경우
현재 안드로이드 개발에서https를 제외한 통신은 정해진 상황에서 사용할 수 없기 때문
http://localhost
도 열 수 없습니다.AndroidManifest.xml
에서 설정해야 합니다.심플한
android:usesCleartextTraffic="true"
사용 시 Build Variant 등 제품판 빌딩false
을 이용하세요.참고 자료
Reference
이 문제에 관하여(Android Emultator에서 localhost에 설치된 SPA 및 API까지 localhost 상태로 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/amay077/articles/311c6f99616a34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)