> For the complete documentation index, see [llms.txt](https://ajgallego.gitbook.io/cordova/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajgallego.gitbook.io/cordova/plugins/gestion-de-plugins.md).

# 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>
