[안드로이드 webview와 자바스크립트 연동]
안녕하세요 오늘은 안드로이드 webview기반에서 웹프로젝트 자바스트립트 연동에 대해서 알아보겠습니다.
MainActivity에 Handler를 생성합니다.
1 | private final Handler handler = new Handler(); | cs |
다음으로는 안드로이드 브릿지를 내부 클래스로 하나 만듭니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | // 안드로이드 브릿지 스크립트연동 private class AndroidBridge { @JavascriptInterface public void setDeviceInfo(final String arg) { // 웹에서 전송한 문자열 데이터 입니다. handler.post(new Runnable() { public void run() { } }); } } | cs |
마지막으로 webview셋팅에 자바스크립트 인터페이스로 브릿지 내부 클래스를 넣어줍니다.
1 | mWebView.addJavascriptInterface(new AndroidBridge(), "MyApp"); // 자바스크립트 인터페이스 | cs |
다음으로는 웹프로젝트에서 자바스트립트를 이용하여 안드로이드 webview를 호출해 보겠습니다.
자바스크립트에서 저희가 만든 MyApp이라는 명칭과 AndroidBridge클래스안에 setDeviceInfo 메서드를 붙여 호출합니다.
1 | window.MyApp.setDeviceInfo("hello"); | cs |
저희는 파라미터를 "hello"라는 것을 넣어줬는데요. 이 값은 setDeviceInfo메서드의 arg로 넘어옵니다.
안드로이드 로그에 arg를 넣어주면 "hello"라는 문자열을 보여 줄것 입니다.
안드로이드 웹뷰(webview) shouldOverrideUrlLoading() 메서드가 궁금하시다면 아래의 링크를 클릭해주세요.
↓
2018/10/04 - [안드로이드] - 안드로이드 webview shouldOverrideUrlLoading() 사용법
이번에는 간단한 안드로이드 자바스크립트 브릿지에 대해서 알아봤습니다.
유용하셨다면 좋아요 한번씩 눌러 주시면 감사하겠습니다.
[안드로이드] 하이브리드 앱 만들기(hybrid) (1) | 2019.01.28 |
---|---|
[ android ] 안드로이드 상태바, 액션바(status bar, action bar) 없애는 방법 & 예제 (0) | 2019.01.28 |
안드로이드 webview shouldOverrideUrlLoading() 사용법 (1) | 2018.10.04 |
[Android] 뒤로가기(Back) 버튼 막기 (0) | 2018.08.17 |
[ Android ] 안드로이드 권한(Permission)설정(안드로이드 6.0, 마시멜로 이상) (0) | 2018.07.17 |