PhoneGap
Android でいくつかのネイティブ アクションを作成する方法のテストを開始するために、非常に単純なプラグインを作成しました。
JavaScript:
function callNativePlugin() {
cordova.exec(nativePluginResultHandler, nativePluginErrorHandler, "Database", "saveAdvertencia", [ 1, "TesteAdv" ]);
}
function nativePluginResultHandler(result) {
alert("SUCCESS: \r\n" + result);
}
function nativePluginErrorHandler(error) {
alert("ERROR: \r\n" + error);
}
ジャワ:
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("saveAdvertencia")) {
advertenciaDS = new AdvertenciaDS(cordova.getActivity());
callbackContext.sendPluginResult(new PluginResult(Status.OK, new JSONArray("test")));
return true;
}
return false;
}
必要なのは、同じメソッドでアクションから結果を取得する方法です。常に 3 つのメソッド (1 つはアクションを実行するためのもの、1 つは成功アクションを定義するためのもの、1 つはエラー アクションを定義するためのもの) をいつ呼び出すかを実際に制御しない場合、非常に複雑です。PhoneGap
アクションが完了した後にそれらを呼び出します。
Android ネイティブ データベースからデータを取得する必要がある場合:
- JavaScript で「cordova.exec」を呼び出します。
- PhoneGap がプラグインを呼び出します。
- プラグインは 2 つのものを返します: すべてが期待どおりに機能したかどうかを定義する PhoneGap のブール値。成功したメソッドに渡されるデータ。
- ここが私にとってトリッキーな部分です。成功するかどうかにかかわらず、PhoneGap が決定するため、いつ呼び出されるかを制御できない 2 つのメソッドを作成する必要があります。これを変更するにはどうすればよいですか?