Cordovaプラグインから呼び出されるネイティブインタフェースは、以下のように実装します。
JavaScriptインタフェースから呼び出されるメソッドを実装したクラスは、org.apache.cordova.CordovaPluginクラスを継承する必要があります。JavaScriptインタフェースから呼び出されるメソッド(エントリポイント)は、親クラスのexecuteメソッドをオーバライドする事で作成します。
executeメソッドは一般的には以下のような形をしています。
@Override public boolean execute(String action, JSONArray args, CallbackContext context) throws JSONException
それぞれの引数の意味は以下です。
引数 | 意味 |
---|---|
action | アクション名です。JavaScriptインタフェースから渡された値が入ります。 |
args | JavaScriptインタフェースから渡された引数が入ります。 |
context | コールバックコンテキストです。 |
JavaScriptインタフェースから呼び出されるメソッドを実装したクラスは、CDVPluginクラスを継承する必要があります。
ネイティブインタフェース側では、以下の実装を必ずおこなう必要があります。
[Androidの場合]
クラスで複数のアクションを実装する場合には、アクション名に応じた処理の切り分け。
処理の成否に応じたコールバック関数の呼び出し。処理が成功した場合、CallbackContextクラスのsuccessメソッドを、失敗した場合にはCallbackContextクラスのerorrメソッドの呼び出し。
依頼された処理を実行した場合にはtrueを、実行しなかった場合(サポートされていないアクション名が渡された等)にはfalseを返却する。
[iOSの場合]
クラスで複数のアクションを実装する場合には、アクションごとのメソッドの作成。メソッドの引数にはCDVInvokedUrlCommandクラスを指定する。
処理の成否に応じたコールバック関数の呼び出し。処理が成功した場合、CDVPluginクラスのsuccessメソッドを、失敗した場合にはCDVPluginクラスのerrorメソッドの呼び出し。