Ho creato un plug-in molto semplice PhoneGap
per iniziare a testare il modo in cui sto per creare alcune azioni native su Android.Acquisisci il valore restituito da 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;
}
cosa ho bisogno è un modo per recuperare il risultato dall'azione con lo stesso metodo. È molto complicato gestire sempre 3 metodi (1 per eseguire l'azione 1 per definire quale sarà l'azione di successo 1 per definire quale sarà l'azione dell'errore) quando non controlli realmente quando vengono chiamati, poiché PhoneGap
li chiama dopo che l'azione è stata completata.
Se ho bisogno di recuperare alcuni dati dal database nativo Android:
- chiamata in JavaScript del "cordova.exec".
- PhoneGap chiamerà il tuo plug-in.
- Il tuo plug-in restituirà 2 elementi: Un booleano per PhoneGap che definisce che tutto ha funzionato come previsto o meno. I dati che verranno passati ai metodi sucessfull.
- Ecco la parte difficile per me. In caso di esito positivo o negativo, è necessario creare 2 metodi per i quali non si ha il controllo di quando verranno chiamati, poiché PhoneGap lo deciderà. Come posso cambiare questo?
@mafutrct Grazie per la correzione formato di testo! – MBarni
Tutto il merito va a @Real, ho appena corretto un piccolo dettaglio – mafu