Android에서 JS를 통해 WebView와 통신하기
안녕하세요. 첫 포스팅을 게재하는 명동콜링입니다. 첫 포스팅인 만큼 간단하게 하이브리드 앱 개발 할 때 필수적인 요소인 Javascript를 통해 Web에서 App으로 데이터를 보내는 방법을 알려드리고자 합니다. 하이브리드 앱도 앱이기 때문에 웹 페이지로 구성이 되어있지만 앱의 기능을 어느 정도는 사용하게 됩니다. 그렇기 때문에 앱에서는 웹에서 어떠한 신호를 받기 위한 로직이 필요했으며, 그에 따라 생겨난 것이 Javascript를 통해 데이터를 주고받을 수 있도록 한, Android Bridge Interface 입니다. 과거에 JS를 통해 교류할 수 없었을 때에는 앱 내에서만 사용할 Scheme을 가지고 URL형식으로 호출을 하게 되었다면, 지금은 완벽하게 Javascript문법을 통해 앱의 API를 호출 할 수 있도록 도와주고 있습니다. 그럼 이제 초기 셋팅을 해보도록 할텐데, 전반적인 프로세스는 다음과 같습니다. Android WebView에서 Javascript Interface를 설정한다. Web에서는 WebView에서 설정된 Interface를 호출한다. 항목이 두 가지 밖에 없는 만큼 참 구현도 간단한데, 예시로 웹에서 버튼을 누르면 현재의 웹이 아닌 다른 브라우저에서 페이지가 열리도록 하는 것을 구현해 보도록 하겠습니다. 먼저 WebView에서 Javascript Interface를 설정하는 방식에 대해 확인해 봅시다. 1 2 3 4 5 public abstract class JavascriptInterface{ public static final String JS_INTERFACE = "webInterface" ; public abstract void loadPage( String url); } Colored by Color Scripter cs 위의 클래스는 기본 클래스가