Fichero de configuración

En cada proyecto se incluye un fichero de configuración config.xml (situado en la carpeta raíz del proyecto) que nos permite establecer las principales opciones de configuración de nuestra aplicación de forma global (para todas las plataformas destino).

Al compilar un proyecto (mediante el comando build o run del CLI) se crean versiones específicas de este fichero de configuración para cada plataforma, lo que nos permite establecer configuraciones más especializadas. La ruta donde el fichero es copiado varía dependiendo de la plataforma, por ejemplo:

app/platforms/ios/AppName/config.xml
app/platforms/blackberry10/www/config.xml
app/platforms/android/res/xml/config.xml

Para más información sobre configuraciones específicas podéis consultar la sección "Configuration" de la documentación:

http://cordova.apache.org/docs/en/latest/config_ref/index.html

A continuación se describen las opciones de configuración generales para todas las plataformas, pero además de estas hay muchas específicas dependientes de la plataforma.

Elementos de configuración principales

A continuación se muestran las primeras líneas del fichero config.xml generado por defecto al crear un nuevo proyecto de Cordova. Esta configuración es compatible para todas las plataformas:

<widget id="com.example.hello" version="1.0.0">
    <name>HolaMundo</name>
    <description>
        Ejemplo de aplicación con Cordova
    </description>
    <author email="email@email.com" href="http://miweb.com">
        Nombre autor
    </author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="..." />
    <platform name="android">
        <allow-intent href="..." />
    </platform>
    <platform name="ios">
        <allow-intent href="..." />
    </platform>
    <engine name="android" spec="^6.2.3" />
    <engine name="browser" spec="^4.1.0" />
    <plugin name="cordova-plugin-device" spec="^1.1.7" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
</widget>

Donde:

  • <widget>: su atributo id especifica el paquete de la aplicación (usando el reverse-domain-name), y su atributo version es el número completo de versión de la app (siguiendo la notación major/minor/patch, ver más información en la sección "Versión de la aplicación").

  • <name>: especifica el nombre del proyecto y de la app, es el que aparecería al instalar la app junto a su icono y en los markets.

  • <description> y <author>: son metadatos e información de contacto que se utilizará al publicar la app en los markets.

  • <content>: es un atributo opcional para indicar la página inicial de nuestro código. Por defecto se utilizará index.html.

  • <access>: define un conjunto de dominios externos a los que se le permite acceder. Por defecto, al indicar * se le permite acceder a cualquier servidor. Para más información consultar la ayuda sobre Domain Whitelist.

  • <allow-intent>: Controla las URLs que la aplicación puede pedir al sistema que abra. De forma predeterminada, no se permiten URLs externas. En el ejemplo superior se indica "...", pero por defecto se añadirán seis tipos de URLs permitidas: http, https, tel, sms, mailto y geo.

  • <platform>: En el fichero de configuración por defecto también encontraremos dos sección "platform", las cuales nos sirven para indicar opciones de configuración específicas de una plataforma. En el ejemplo se añade un intent adicional para Android y otro para iOS.

  • <engine>: Mediante esta etiqueta se indican las plataformas añadidas y la versión concreta que se ha instalado. Al crear un proyecto por defecto no aparecerá ninguna.

  • <plugin>: La etiqueta plugin especifica los plugins instalados junto con su versión.

Versión de la aplicación

Tanto Android como iOS soportan una cadena con una nombre (o número) de versión alternativo además del que se utiliza en el market. En Android es el versionCode y en iOS el CFBundleVersion. A continuación se muestra como podemos establecer estas versiones en el config.xml:

<widget id="io.cordova.hellocordova"
    version="1.0.0"
    android-versionCode="7"
    ios-CFBundleVersion="3.3.3">

Si esta versión no se especifica se construirá a partir del atributo version. Como se ha indicado, este atributo se construye siguiendo la notación major/minor/patch, por lo que se usarán estos valores de la forma:

// version = MAJOR.MINOR.PATCH
versionCode = PATCH + MINOR * 100 + MAJOR * 10000
CFBundleVersion = "MAJOR.MINOR.PATCH"

Preferencias

Mediante la etiqueta "<preference>" podemos añadir opciones de configuración o preferencias para las disntintas plataformas instaladas. Por ejemplo, podemos configurar las orientaciones permitidas para la aplicación con "orientation", indicando como valor las opciones: default, landscape, o portrait. A continuación se incluye un ejemplo:

<preference name="orientation" value="landscape" />

Existen muchas opciones de configuración que podemos personalizar, desde el color de fondo o la barra de estado, hasta otras opciones de compilación. Además, muchas de estas opciones son particulares de una plataforma y por lo tanto no tendrán efecto en las demás. Dado que hay muchas opciones de configuración y que la mayoría son opciones avanzadas muy particulares del proyecto en cuestión, se remite a la documentación oficial:

http://cordova.apache.org/docs/en/latest/config_ref/index.html#preference

Última actualización