2012-01-30 14 views
22

Estoy desarrollando una aplicación para Android usando Phonegap. Necesito hacer que el teclado aparezca programáticamente. Estoy usando el complemento SoftKeyboard que se encuentra here. ¿Alguien puede decirme cómo incluir correctamente este complemento & para que funcione? He intentado con el tutorial que se encuentra en el Phonegap Wiki, pero el complemento no funciona.Cómo usar Phonegap SoftKeyboard Plugin para Android?

[Actualización] he añadido el plugin para el camino

com/zenexity/SoftKeyBoardPlugin/SoftKeyBoard.java

Actualizado plugins.xml e incluido

<plugin name="SoftKeyBoard" value="com.zenexity.SoftKeyBoardPlugin.SoftKeyBoard"/> 

A continuación, en la carpeta www añadió softkeyboard.js, y la siguiente en index.html

plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

Pero no pasa nada, el teclado no se muestra ..

+0

definir 'no funciona' – Nanne

+0

@Nanne no pasa nada, mostrando sin teclado! –

+0

y pusiste algo en las partes de éxito/falla para depurar si realmente no es correcto/ – Nanne

Respuesta

11

Esto es cómo llegué SoftKeyBoard trabajando en mi solicitud.

DroidGap lateral

  • crear/src/com/PhoneGap/plugins/SoftKeyboard con SoftKeyBoard.java archivo proporcionado en el interior
  • añadir a /res/xml/plugins.xml:

    < plugin name="SoftKeyBoard" value="com.phonegap.plugins.SoftKeyboard.SoftKeyBoard" />

/assets/www lateral

  • complementos previstos softkeyboard.js de archivos a/activos/www/js
  • añaden al índice.html en la cabeza donde sus otros archivos JavaScript se incluyen después de haber incluido el javascript PhoneGap:

    < script type="text/javascript" charset="utf-8" src="js/softkeyboard.js"></script>

continuación, puede llamar al siguiente si está en el dispositivo o usar algo como Ripple:

window.plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

o algo como esto si usted quiere asegurarse de que el espacio de nombres está disponible, lo que evitará problemas no definidos:

((((window || {}).plugins || {}).SoftKeyBoard || {}).show || function(){})(); 

Creo que tal vez donde saliste mal no incluía el js/softkeyboard.js en tu cabeza de index.html.

Espero que esto ayude

+0

¿Funciona pero cómo saber si el teclado oculta y muestra el evento? utilicé este código ((((ventana || {}). plugins || {}). SoftKeyBoard || {}). show || function() {})(); – JavaH

+0

Cómo llamar a la función anterior 'onfocus' o' onclick 'de' EditText' en javascript? – YuDroid

+1

En mi caso, se muestra el teclado y luego desaparece de repente. ¿Por qué sucede esto? – YuDroid

2

Trate de esta manera:

SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

El código en el archivo JS no lo pone en el espacio de nombres "plugins".

Orjust utilizar el espacio de nombres PhoneGap plugins completo:

window.plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 
9

Para obtener la última versión de PhoneGap (Apache Cordova 2.1.0) que tenía que hacer lo siguiente:

Instalado estas fuentes plugin que reflejan el cambio de nombre del proyecto: https://github.com/originalgremlin/phonegap-plugins/tree/master/Android/SoftKeyboard

  • Copie softkeyboard.js en el directorio de su biblioteca de JavaScript.
  • Copia SoftKeyBoard.java a src/org/apache/Córdoba/plugins/SoftKeyBoard.java

Ponga esto en su archivo HTML, después de incluir el archivo cordova.js:

<script src="/path/to/javascripts/softkeyboard.js"></script> 

Agregar esto a la parte inferior de la res/xml/config.xml plugins sección:

<plugin name="SoftKeyBoard" value="org.apache.cordova.plugins.SoftKeyBoard" /> 

Ahora, suponiendo que este código HTML:

<button id="keyboard">Toggle Keyboard</button> 

Este jQuery debe hacer algo útil:

var softkeyboard = window.cordova.plugins.SoftKeyBoard; 
$('#keyboard').toggle(softkeyboard.show, softkeyboard.hide); 
+0

¡Señor, me ha ahorrado mucho tiempo, muchas gracias! –

+0

el teclado desaparece después de llamarlo? ¿alguna idea? usando iscrollview, cordova 2.9.0, jqm 1.3.2 – mboeckle

0

Cordova 3.0 + JQM 1.3.2: cambiante "pantalla completa" a "falso" en el config.xml fijo "adjustPan" e impidieron mis entradas de ser cubierto cuando se muestra el teclado. Sin embargo, blur() no cerraría el teclado y este plugin funcionó maravillosamente.

Para la versión más reciente de casi PhoneGap:

  • Añadir SoftKeyBoard.java a su paquete de aplicación en src
  • Añadir softkeyboard.js a los activos/www
  • actualización de configuración.xml con: <feature name="SoftKeyBoard"><param name="android-package" value="com.yourAppPackage" /></feature>
  • Llame a su plugin: plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });
Cuestiones relacionadas