티스토리 뷰

안드로이드 관련 글을 포스팅 하는건 처음인 것 같다.

하이브리드웹이라 해야하나?

아무튼 본론은 이렇다.

모바일웹이나 안드로이드 껍데기로 이루어진 앱이 있다.

예를 들면, 모바일웹에서 어플종료 버튼을 만들었다고 치자.

그러면 어떻게 할 것 인가?

기존 4.1.X 버전 이하에서는 자바스크립트 인터페이스를 명시 해주지 않아도 됐다.

구글은 4.2 이상의 버전 이후 부터 반드시 명시를 해주어야 인터페이스를 사용할 수 있다고 한다.

첫 번째로 둘(앱과 웹)간의 주고 받는 코드가 있어야한다.

안드로이드에서는 모바일에서 보내준 특정 코드를 받아야한다.

1. 일단 클래스를 하나 만들자.

public class test extends Activity {
    
    
    private final Handler handler = new Handler();
    @Override
        public void onCreate(Bundle savedInstanceState) {
            ......
            ......
            ......
            웹뷰.getSettings().setJavaScriptEnabled(true);
            웹뷰.addJavascriptInterface(new AndroidBridge(), "hybrid");
            ......
            ......
            ......
        }
        public class AndroidHandler {
            @JavascriptInterface // 젤리빈 이후 OS에서는 반드시 넣어주어야 합니다.
            public void setMessage(final String argv) {
                handler.post(new Runnable() {
                public void run() {
                    String msg = argv;
                    // 앱을 종료한다고 하면
                    // 그냥 비교 하면 된다.
                    if(argv.equals("1")) {
                        finish();
                    }
                }
            }
        }
    }
}

2. 이제 안드로이드 소스에서 해야할 것은 마쳤다.

웹에서는

script
function sendMessage(msg){
    window.hybrid.setMessage(msg);
}
/script
앱 죽어라

 

3. 이 소스코드를 보신 분은 각자 테스트 해보시길.........

모바일웹으로 이루어진 앱을 만들때 진짜 유용하게 사용된다.

 

댓글
댓글쓰기 폼
Total
195,405
Today
5
Yesterday
12
«   2019/07   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
글 보관함