티스토리 뷰
안드로이드 관련 글을 포스팅 하는건 처음인 것 같다.
하이브리드웹이라 해야하나?
아무튼 본론은 이렇다.
모바일웹이나 안드로이드 껍데기로 이루어진 앱이 있다.
예를 들면, 모바일웹에서 어플종료 버튼을 만들었다고 치자.
그러면 어떻게 할 것 인가?
기존 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. 이 소스코드를 보신 분은 각자 테스트 해보시길.........
모바일웹으로 이루어진 앱을 만들때 진짜 유용하게 사용된다.
댓글