我構建了一個非常簡單的PhoneGap
插件,以開始測試我要在Android上構建一些本機操作的方式。從PhoneGap Plugin獲取返回值
的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);
}
的Java:
@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的一個布爾值,它定義了它的一切按預期工作或沒有。將傳遞給成功方法的數據。
- 這是我的棘手部分。如果成功或者不成功,你必須創建2個方法,當它們被調用時你不能控制它們,因爲PhoneGap會決定這個方法。我該如何改變這一點?
@mafutrct感謝文本格式指正! – MBarni 2013-03-21 13:43:02
所有功勞歸於@Real,我只是修復了一個小細節 – mafu 2013-03-21 13:46:38