How to process argument between js(html5) and cordova 3.x

|

CordovaPlugin 에서 상속받은 클래스의 멤버함수인  excute의 json을 처리할수 있는 스펙은 아래와 같습니다.


public boolean execute(String action, JSONArray args,

final CallbackContext callbackContext)


1. js 에서 넘어온 인자 받기

args 에 배열의 첫번째로 넘겨온 json object를 얻으려면 아래 와 같이 해줍니다.


JSONObject json = args.getJSONObject(0);


get 함수로 각각의 json object 의 멤버변수들을 얻어올수 있습니다.


Log.d(TAG, "pi : " + json.get("pi"));

Log.d(TAG, "number : " + json.get("number"));

Log.d(TAG, "msg : " + json.get("msg"));


각 변수들은 기본적으로 String 형으로 받아지기 때문에 int 형을 처리 해주려면 타입 캐스팅을 해줍니다.


(Integer) json.get("number") + 1 


2. js 로 결과값을 인자로 넘겨주기


먼저 넘겨줄 빈 json 오브잭트를 만듭니다.

JSONObject resultJSON = new JSONObject();


put 함수로 값을 체워 넣습니다.

resultJSON.put("result", "ok");

resultJSON.put("msg", "json echo!!");


전송하기전에 먼저 PluginResult 객체에 담아줍니다.

PluginResult plugin_result = new PluginResult(Status.OK, resultJSON);


콜백컨텍스트의 sendPluginResult 함수로 js 측으로 결과 값을 전달합니다.

callbackContext.sendPluginResult(plugin_result);


3. 예제 실행법


plugin_sample.zip

 파일을 다운받습니다.


코도바 프로잭트를 생성하고  안드로이드 플랫폼을 추가합니다.

압축을 푸시고 로컬에서 다음과 같이 플러그인을 추가 합니다.( 플러그인의 경로가 ../plugin_sample/echo 이라고 가정)

cordova plugin add ../plugin_sample/echo


js 쪽 예제는 첨부된 파일의 index.html을 참고 하시면됩니다.



Trackback 0 And Comment 0
prev | 1 | ··· | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ··· | 18 | next