Cordova + Android – android-windowSoftInputMode adjustPan no funciona

Estoy usando Cordova 5.4.0 y tengo esto en mi config.xml :

 <preference name="fullscreen" value="false" /> <preference name="android-windowSoftInputMode" value="adjustPan" /> 

Pero después de la construcción, en mi AndroidManifest.xml todavía hay

 android:windowSoftInputMode="adjustResize" 

¿Por qué no funciona? ¿Y cómo puedo solucionarlo?

La preferencia android-windowSoftInputMode parece estar respaldada por Phonegap solamente, no por Cordova.

Solución 1: utilice un complemento

Agregue el complemento cordova-custom-config :

 cordova plugin add cordova-custom-config 

Agregue la siguiente preferencia:

 <platform name="android"> <preference name="android-manifest/application/activity/@android:windowSoftInputMode" value="adjustPan" /> ... </platform> 

Solución 2: agregue un gancho before_build

Agregue el siguiente gancho a config.xml:

 <hook type="before_build" src="scripts/appBeforeBuild.js" /> 

Agregue un archivo appBeforeBuild.js al directorio de scripts con el siguiente contenido:

 #!/usr/bin/env node var fs = require('fs'); var path = require('path'); var pathToManifest = path.join(__dirname, '../platforms/android', 'AndroidManifest.xml'); if(fs.existsSync(pathToManifest)) { var config = fs.readFileSync(pathToManifest, 'utf8'); var result = config.replace(/(android:windowSoftInputMode=").*?(")/, '$1adjustPan$2'); fs.writeFileSync(pathToManifest, result, 'utf8'); console.log('Set android:windowSoftInputMode to adjustPan'); } else { console.log('Could not find AndroidManifest to set android:windowSoftInputMode'); } 

Este script utilizará Node para buscar el AndroidManifest y hacer un reemplazo de regex en el atributo android:windowSoftInputMode (primera aparición solamente).

Prueba éste

  1. Index.html

     <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width, height=device-height"> 
  2. Config.xml

     <preference name="android-windowSoftInputMode" value="adjustResize|adjustPan" /> 

Parece que estás cambiando el AndroidManifest.xml incorrecto. En su aplicación, bajo \ platform \ android … encontrará el archivo .xml, tendrá que cambiarlo.

También puede utilizar el cordova-custom-config

 cordova plugin add cordova-custom-config 

Y agrega esto a tu config.xml

 <platform name="android"> <preference name="android-manifest/application/activity/@android:windowSoftInputMode" value="adjustPan" /> </platform> 
  • Cordova 3.4.0 navigator.camera.getPicture no callback onSuccess o onFail para Android 4.3
  • ClassNotFoundException en PhoneGap Introducción a Android
  • Phonegap Construye aplicación con Crosswalk en Android
  • Construye android release apk en Phonegap 3.x CLI
  • AngularJS botón de retroceso
  • La creación del teléfono no muestra la pantalla de bienvenida
  • Cómo leer datos fragmentados de archivo de archivo Gap de teléfono en Android
  • ¿Cómo abrir un archivo pdf usando jquery y phonegap en android?
  • Cordova: No se puede instalar apk después de actualizar android a 5.1.1 Nexus 5
  • PhoneGap 3.x Android - Tema de Popup / Dialog nativo
  • Phonegap - Leer sub-directorios?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.