1. Android에서 Javascript함수 호출하기 webView.loadUrl("javascript:callJS('Hello from Android')"); 다음과 같은 방식으로 javascript:methodname 과 같은 문자열을 넣어 WebView.loadUrl 메소드의 인자로 호출한다.
2. Javascript에서 Android 호출하기 /** Object exposed to JavaScript */ 다음과 같이 브릿지 역활을 할 Class를 만든다. WebView의 세팅을 바꾸고 webView.getSettings().setJavaScriptEnabled(true); WebView에 Javascript Interface를 추가해준다. webView.addJavascriptInterface(new AndroidBridge(),"android2"); HTML페이지에서 다음과 같은 방식으로 호출한다. window.android2.callAndroid('Hello from Browser') android2는 addJavascriptInterface의 두번째 인자와 같다.
private class AndroidBridge {
public void callAndroid(final String arg) { // must be final
handler.post(new Runnable() {
public void run() {
Log.d(TAG, "callAndroid(" + arg + ")");
textView.setText(arg);
}
});
}
}
3. Javascript Listener 걸기 webView.setWebChromeClient(new WebChromeClient() { 다음과 같이 WebView의 setWebChromeClient를 이용한다. 위 예제는 Javascript의 alert!메소드 발생시 이벤트이다.
@Override
public boolean onJsAlert!(final WebView view,
final String url, final String message,
JsResult result) {
Log.d(TAG, "onJsAlert!(" + view + ", " + url + ", "
+ message + ", " + result + ")");
Toast.makeText(LocalBrowser.this, message, 3000).show();
result.confirm!();
return true; // I handled it
}
});
============================================================================================================
'Android' 카테고리의 다른 글
파일명으로 리소스 가져오기 (0) | 2011.07.10 |
---|---|
구글 음성검색을 텍스트화 시키기 (0) | 2011.06.01 |
안드로이드 webview에서 back키를 눌렀을 경우 처리 (2) | 2011.05.27 |
디자이어 에서adb가 설치 되지 않는 현상 (0) | 2011.02.28 |
자동 동기화 상태 체크 (0) | 2010.06.01 |