@CapacitorPlugin
어노테이션 사용)@PluginMethod()
어노테이션을 해당 메소드위에 기재한다.PluginCall call
을 사용한다.
call.getString(”key”)
로 매개변수를 Javascirpt → nativeCode 단에서 전달받을수 있다package io.ionic.starter;
import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;
@CapacitorPlugin(name = "Echo")
public class EchoPlugin extends Plugin {
@PluginMethod
public void echo(PluginCall call){
String value = call.getString("value");
// string 문자열 가져올때
JSObject address = call.getObject("address", new JSObject());
// JSON 객체 가져올때
JSObject jsObject = new JSObject();
jsObject.put("value",value);
call.resolve(jsObject);
}
}
클라이언트(Javascript 단)은 JSON 직렬화된 데이터를 Native Code로 보낼수 있다.
클라이언트로 부터 보내져온 data는 PluginCall.getData() 로 얻어올 수 있다.
플러그인 메소드는 호출될때 성공할수도 있고 실패할 수도 있다. Promise 패턴사용
무언가의 오류로 실패해서 데이터를 클라이언트에게 반환하기 싫다면 call.reject 메소드를 사용한다.
call.reject(exception.getLocalizedMessage(), null, exception);