Personalizar plataformas mediante merges

En ocasiones se hace necesario especificar algunos recursos de forma separada para una plataforma. En este caso no deberíamos modificar la carpeta correspondiente de platforms ya que se sobreescribiría en la próxima compilación.

Con este propósito se creo la carpeta merges, la cual contiene los assets que se han de copiar o reemplazar para las plataformas especificadas. La estructura de esta carpeta es la siguiente:

  • En primer lugar tendremos que crear subcarpetas con el mismo nombre que la carpeta de platforms que deseemos sobreescribir.

  • Dentro de esa subcarpeta crearemos una estructura espejo a la carpeta www, pero únicamente situando los ficheros y carpetas que deseemos reemplazar.

Por ejemplo, el fichero merges/android/css/overrides.css sobreescribiría el css situado en www/css/overrides.css pero solamente para la plataforma Android. Si además quisieramos especificar un estilo distinto para la plataforma iOS, podríamos añadir otro CSS en la siguiente ruta de la carepta merges: merges/ios/css/overrides.css

Estos CSS sustituirán al CSS original tras compilar para la plataforma destino. Es importante que siempre exista este fichero en la carpeta www del proyecto, que en este caso sería www/css/overrides.css. Este fichero se utilizaría para el resto de plataformas que no hayan sido sobreescritas en merges. En caso de que no exista el fichero (porque siempre queremos que se use el de la carpeta merge) podríamos crear un fichero vacío.

Para utilizarlos en el código del proyecto lo tendremos que hacer de forma normal. Por ejemplo, en este caso, desde el fichero index.html situado en www/index.html, podríamos cargar el CSS de forma normal:

<link rel="stylesheet" type="text/css" href="css/overrides.css" />

Además de CSS, en la carpeta merges podemos añadir cualquier otro tipo de recurso que queramos sustituir: html, js, imágenes, etc.

Última actualización