Aprende a recuperar el contexto de un complemento de cordova en Android

La clase Context es una clase abstracta cuya implementación la proporciona el sistema Android. Permite el acceso a clases y recursos específicos de la aplicación, así como llamadas ascendentes para operaciones a nivel de la aplicación, como actividades de lanzamiento, transmisión y recepción de intents, etc. 

Una gran cantidad de piezas de código abierto o funciones nativas de Android, requieren el Contexto como parámetro en algunas funciones, en este artículo aprenderá cómo recuperarlo fácilmente en un Complemento Cordova.

Recuperar contexto

Como primero, necesita importar la clase Context para manejar la variable en su código usando:

import android.content.Context;

Ahora que acaba de importar la clase Context, puede recuperarla usando:

Context context = this.cordova.getActivity().getApplicationContext();

Nota: debe utilizar este código dentro de una clase que amplíe la clase CordovaPlugin.

Ejemplo

El siguiente ejemplo muestra cómo recuperar el contexto en un complemento de Cordova para mostrar un brindis:

package com.ourcodeworld.plugins.MyCustomClassName;

import org.apache.cordova.*;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONException;

/*Para brindar y contexto*/
import android.content.Context;
import android.widget.Toast;

public class MyCustomClassName extends CordovaPlugin {
    private CallbackContext PUBLIC_CALLBACKS = null;

    @Override
    public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
        PUBLIC_CALLBACKS = callbackContext;
        final JSONObject arg_object = data.getJSONObject(0);

        /*Muestra hola mundo en una notificacion*/
        if(action.equals("show_toast")){
            Context context = this.cordova.getActivity().getApplicationContext();
            int duration = Toast.LENGTH_LONG;

            Toast toast = Toast.makeText(context, "Hello World!", duration);
            toast.show();
        }
 
        PluginResult result = new PluginResult(PluginResult.Status.OK, "success");
        result.setKeepCallback(true);
        PUBLIC_CALLBACKS.sendPluginResult(result);

        return true;
    }
}

Que te diviertas !


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores