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