# Gestión de plugins

En esta sección vamos a ver como buscar, añadir, listar y eliminar *plugins*, además de algunas características avanzadas adicionales.

## Buscar *plugins* <a href="#buscar-plugins" id="buscar-plugins"></a>

En la dirección "<http://plugins.cordova.io>" podemos consultar la lista completa de todos los *plugins*, incluyendo los que han sido desarrollados por la comunidad. Esta web nos permite buscar tanto por nombre como por descripción y además filtrar los resultados por plataforma, eligiendo por ejemplo que aparezcan solo los disponibles para Android, o para Android e iOS.

También es posible utilizar el CLI de Cordova para buscar *plugins* en este registro. Por ejemplo, para buscar un *pluging* para códigos de barras usaríamos:

```
$ cordova plugin search bar code
```

Al ejecutar este comando se abrirá una ventana del navegador con los resultados. Es importante destacar que las búsquedas no distinguen mayúsculas y minúsculas, por lo que también podríamos haber buscado "Bar Code". Si buscasemos únicamente por "Bar" obtendríamos muchos más resultados, incluyendo un *plugin* para trabajar con la barra de estado y otro para mostrar notificaciones.

En cada resultado nos aparece un botón a la derecha para copiar el comando de Cordova para añadirlo. Además si pulsamos sobre el título se abrirá una página con mucha más información sobre el plugin.

## Añadir un *plugin* <a href="#anadir-un-plugin" id="anadir-un-plugin"></a>

Para añadir un plugin a un proyecto simplemente tenemos que indicar el repositorio o nombre del plugin que deseemos y el sistema se encargará de descargarlo e instalarlo. A continuación se incluye una lista de los *plugins* oficiales más utilizados y como tendríamos que instalarlos.

**Obtener información del dispositivo:**

```
$ cordova plugin add cordova-plugin-device
```

**Información sobre la conexión y la batería:** (ver sección sobre eventos)

```
$ cordova plugin add cordova-plugin-network-information
$ cordova plugin add cordova-plugin-battery-statusbattery-status
```

**Acelerómetro, brújula y geolocalización:**

```
$ cordova plugin add cordova-plugin-device-motion
$ cordova plugin add cordova-plugin-magnetometer
$ cordova plugin add cordova-plugin-device-orientation
$ cordova plugin add cordova-plugin-geolocation
```

**Cámara, reproducción y captura de contenidos multimedia:**

```
$ cordova plugin add cordova-plugin-camera
$ cordova plugin add cordova-plugin-media-capture
$ cordova plugin add cordova-plugin-media
```

**Acceso a ficheros del dispositivo y de la red:**

```
$ cordova plugin add cordova-plugin-file
$ cordova plugin add cordova-plugin-file-transfer
```

**Notificaciones mediante diálogos y vibración:**

```
$ cordova plugin add cordova-plugin-dialogs
$ cordova plugin add cordova-plugin-vibration
```

**Contactos:**

```
$ cordova plugin add cordova-plugin-contactscontacts
```

**Globalización:**

```
$ cordova plugin add cordova-plugin-globalization
```

***Splashscreen*****&#x20;o pantalla inicial:**

```
$ cordova plugin add cordova-plugin-splashscreen
```

**Abrir nuevas ventanas de navegador (InAppBrowser):**

```
$ cordova plugin add cordova-plugin-inappbrowser
```

**Consola de depuración:**

```
$ cordova plugin add cordova-plugin-console
```

> Los *plugins* se descargarán para las plataformas que tenga el proyecto actualmente instaladas. Si posteriormente se añaden más plataformas estos *plugins* se descargarán también de forma automática para la nueva plataforma.
>
> Al instalar un *plugin* de forma automática también se actualizarán los permisos necesarios para cada plataforma. Por ejemplo, en Android se actualizará el Manifest para solicitar los permisos necesarios.

## Ver los *plugins* instalados <a href="#ver-los-plugins-instalados" id="ver-los-plugins-instalados"></a>

Para ver los *plugins* añadidos al proyecto actual podemos usar alguno de los siguientes comandos (todos son equivalentes), los cuales mostrarán un listado de paquetes instalados, junto con su versión y nombre:

```bash
$ cordova plugin

# O también:
$ cordova plugin ls

# O también:
$ cordova plugin list

cordova-plugin-battery-status 1.1.1 "Battery"
cordova-plugin-console 1.0.2 "Console"
cordova-plugin-device 1.1.0 "Device"
cordova-plugin-network-information 1.1.0 "Network Information"
cordova-plugin-vibration 2.0.0 "Vibration"
```

## Eliminar un *plugin* <a href="#eliminar-un-plugin" id="eliminar-un-plugin"></a>

Para eliminar un *plugin* simplemente tenemos que referirnos a él por el mismo nombre del paquete que utilizamos para su instalación (o que podemos ver si ejecutamos `cordova plugin ls`). Por ejemplo, para eliminar el soporte a la consola de depuración ejecutaríamos:

```
$ cordova plugin rm cordova-plugin-console

# O también:
$ cordova plugin remove cordova-plugin-console
```

## Añadir o elminar varios *plugins* a la vez <a href="#anadir-o-elminar-varios-plugins-a-la-vez" id="anadir-o-elminar-varios-plugins-a-la-vez"></a>

Si queremos añadir o eliminar varios *plugins* a la vez simplemente tenemos que indicarlos usando el mismo comando pero separados por espacios, de la forma:

```
$ cordova plugin add cordova-plugin-console cordova-plugin-device

$ cordova plugin rm cordova-plugin-console cordova-plugin-device
```

## Advanced Plugin Options <a href="#advanced-plugin-options" id="advanced-plugin-options"></a>

Para opciones más avanzadas sobre la gestión de *plugins*, como por ejemplo instalar una versión en concreto de un *plugin* o instalar desde otro repositorio, podéis consultar la dirección:

<http://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html#cordova-plugin-command>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ajgallego.gitbook.io/cordova/plugins/gestion-de-plugins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
