고똘이의 IT 개발이야기

[안드로이드 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() 사용법



이번에는 간단한 안드로이드 자바스크립트 브릿지에 대해서 알아봤습니다.

유용하셨다면 좋아요 한번씩 눌러 주시면 감사하겠습니다.

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band