No se si algo estaré haciendo mal o quizás las soluciones son incompletas en mi caso, pero si aquí no resuelven el caso entonces ya no sabré a donde ir.
Estoy haciendo una app usando Cordova (phonegap), todo bien, hasta que te topas con un issue de las versiones 4.1 o 4.2 de android. Cuando tienes un input en tu código html (estoy cargando un cordovawebview), uno puede hacer focus para escribir, pero al intentar escribir, no sale nada.
Veo que este problema es importante y se ha dado para muchos programadores en la web.
En fin, les dejo mi código java con el que inicializo el webview para que puedan revisarlo.
Código Java :
package pack.pruebacordova4; import org.apache.cordova.CordovaWebView; import org.apache.cordova.DroidGap; import org.apache.cordova.api.CordovaInterface; import org.apache.cordova.api.IPlugin; import pack.pruebacordova4.R; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; public class MyPhoneGapActivity extends Activity implements CordovaInterface { CordovaWebView cwv; /* Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); cwv = (CordovaWebView) findViewById(R.id.tutorialView); /* cwv.setFocusableInTouchMode(true); cwv.setFocusable(true); cwv.setHapticFeedbackEnabled(true); cwv.setClickable(true); */ // cwv.requestFocus(); cwv.getSettings().setUseWideViewPort(true); cwv.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: if (!v.hasFocus()) { v.requestFocusFromTouch(); } break; } return false; } }); cwv.loadUrl("file:///android_asset/www/index.html"); } public boolean onCheckIsTextEditor() { return true; } @Override public void cancelLoadUrl() { // TODO Auto-generated method stub } @Override public Activity getActivity() { return this; } @Override public Context getContext() { // TODO Auto-generated method stub return null; } @Override public Object onMessage(String arg0, Object arg1) { // TODO Auto-generated method stub return null; } @Override public void setActivityResultCallback(IPlugin arg0) { // TODO Auto-generated method stub } @Override public void startActivityForResult(IPlugin arg0, Intent arg1, int arg2) { // TODO Auto-generated method stub } }
Como verán he intentado ya varias formas de resolver el issue y nada, espero puedan ayudarme y por fin solucionar ese problema.
Saludos.