2016년 1월 21일 목요일

[WebApp] google fit imitation 만들어 보기 - 3

Java native 코드와 JavaScript 코드사이의 interface 가 필요하다.
java script 의 argument 는 json 으로 받을 수 있으니 native 와 script 간의 data 는 json 형식으로 한다.

https://github.com/tigerbalm/my-google-fit2

PlantUML Diagram

PNG |  SVG |  TXT |  Edit

[WebApp] google fit imitation 만들어 보기 - 2

WebInfterace 에서 data 교환
Hybrid 형태로 만들기 때문에 중요 logic 은 java native 로 작성한다.
java native 와 js 간의 interface 는 WebView 에서 제공하는 WebAppInterface를 이용해서 간단히 구현이 가능하다.
하지만, native java 와  js 간의 교환 가능한 data type 이 primitive type 이기 때문에 복잡한 data 교환에는 json 을 이용해야 한다. (http://stackoverflow.com/a/2251691)

Debugging

chrome 을 이용한 debugging
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);}

logcat 을 이용해서 js의 console log 확인하기
webView.setWebChromeClient(new WebChromeClient() {
    public boolean onConsoleMessage(ConsoleMessage cm) {
        Log.d("MyGoogleFit2", cm.message() + " -- From line "                + cm.lineNumber() + " of "                + cm.sourceId() );        return true;    }
});