Cambiar el tema de android de cordova config.xml

En mi empresa estamos utilizando Ionic Framework y Cordova para crear nuestra aplicación para móviles y al iniciar el diseño de la aplicación, encontramos un problema con el tema de Android y cómo configurarlo sin tocar el comando AndroidManifest generado por Ionic build.

En cualquier lugar que busque se recomienda implementar cualquier personalización desde el archivo config.xml y nunca tocar el AndroidManifest, pero no puedo encontrar ningún método con respecto al tema de Android.

Mi pregunta a usted ahora: ¿Hay una manera de fijar el tema androide para la aplicación, por ejemplo tema de Holo, del Config.xml sin cambiar el AndroidManifest.xml generado?

2 Solutions collect form web for “Cambiar el tema de android de cordova config.xml”

Para evitar tocar el directorio de plataformas, puede usar un gancho cordova. Soy bastante terrible en el nodo, pero aquí es algo que debe hacer el truco. Primero npm install elementtree entonces cree una carpeta secundaria after_prepare en la carpeta de los ganchos. De ahí pegar este código en un archivo javascript y cambiar YourTheme.

Honestamente, este es un código bastante grueso, pero debería darte la idea.

 #!/usr/bin/env node var fs = require( "fs" ); var et = require('elementtree'); var rootdir = process.argv[2]; console.log(rootdir); fs.open(rootdir + '/platforms/android/AndroidManifest.xml', 'r+', function (err, fd) { if (err) { exitError(err); } fs.stat(rootdir + '/platforms/android/AndroidManifest.xml', getStats); function getStats(error, stats) { if (error) { exitError(error); } var buffer = new Buffer(stats.size); fs.read(fd, buffer, 0, buffer.length, null, fileRead); } function fileRead(error, bytes, buf) { var data = buf.toString("utf8", 0, buf.length); var androidXML = et.parse(data); var root = androidXML.getroot(); var activityTag = root.find("application/activity"); activityTag.attrib["android:theme"] = "@style/YourTheme"; var outputBuffer = new Buffer(et.tostring(root), "utf-8"); console.log(outputBuffer.toString()); fs.closeSync(fd); fs.open(rootdir + '/platforms/android/AndroidManifest.xml', 'w', writeFile); function writeFile(error, fd) { if (error) { exitError(error); } fs.write(fd, outputBuffer, 0, outputBuffer.length, 0, function( errw, written, str) { if (errw) { exitError(errw); } console.log('file written'); fs.close(fd); }); } } }); function exitError(error) { console.log(error); process.exit(0); } 

Sé que estoy atrasado, pero el complemento cordova-custom-config solo para "actualizar los archivos de configuración de la plataforma basados ​​en las preferencias y los datos de los archivos de configuración definidos en config.xml".

por ejemplo:

  1. instale el plugin cordova-custom-config : cordova plugin add cordova-custom-config --save

  2. Config.xml: <preference name="android-manifest/application/activity/@android:theme" value="@android:style/Theme.Holo"/>

Esto agregará el atributo "android: theme" a su AndroidManfiset -> aplicación -> actividad con el valor: @android:style/Theme.Holo .

  • ¿Por qué este código sigue activando la SaxParseException: "" PI no debe comenzar con xml "?
  • Cómo especificar el valor nulo para un recurso de cadena en xml en Android?
  • ¿Cajón de la navegación sobre la barra de estado en turrón?
  • XmlPullParser - token inesperado (android)
  • ¿Cómo obtener datos del servidor y actualizar la base de datos con él?
  • ImageView no se extiende (Android)?
  • Error en el archivo strings.xml en Android
  • Ejemplo simple de uso de <merge> y <include> en diseños XML de Android
  • Disposición relativa de Android con pie de página pegajoso
  • Análisis de archivos XML grandes utilizando el analizador SAX (salte algunas líneas / etiquetas)
  • ¿Por qué el título no está centrado en la barra de herramientas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.