Я делаю плагин Cordova, который будет установлен следующим образом:
cordova plugin add myplugin --variable NAME="My awesome plugin"
Можно ли получить значение переменной NAME
в коде Java моего плагина, чтобы что-то с ним сделать? Как? Моя цель - пропустить apikey через переменную при установке плагина в Ionic, а затем сделать что-то с заданным значением в моем плагине.
Как я могу напечатать его в этом коде, например?
package ionic.indoor.geolocation;
import android.IndoorGeolocationActivity;
import android.content.Intent;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONException;
public class IndoorGeolocationPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
try {
actionExecutor(action, args);
//callbackContext.success("Indoor geolocation launched!");
} catch (Exception e) {
//callbackContext.error(e.getLocalizedMessage());
}
return true;
}
private void actionExecutor(String action, JSONArray args) throws Exception {
if ("start".equals(action)) {
JSONObject jsonObject = new JSONObject(args.getString(0));
String poi = jsonObject.getString("poi");
String email = jsonObject.getString("email");
String apikey = jsonObject.getString("apikey");
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
start(poi, email, apikey);
}
});
} else if("finish".equals(action)) {
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
finish();
}
});
} else {
throw new IllegalStateException("Unknown action: " + action);
}
}
private void start(String poi, String email, String apikey) {
Intent intent = new Intent(cordova.getActivity(), IndoorGeolocationActivity.class);
intent.putExtra(IndoorGeolocationActivity.EMAIL, email);
intent.putExtra(IndoorGeolocationActivity.APIKEY, apikey);
if (poi != null && poi.length() > 0) {
intent.putExtra(IndoorGeolocationActivity.POI, poi);
}
cordova.getActivity().startActivity(intent);
cordova.getActivity().overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
private void finish() {
cordova.getActivity().finish();
}
}
Спасибо!