Phonegap InAppBrowser – botón de retroceso no ir a la página anterior

Estoy utilizando Phonegap para mi aplicación y necesito mostrar un enlace externo en un InAppBrowser, pero parece que el botton de fondo no funciona como esperado: si estoy haciendo

var ref = window.open('www.example.com/a.html' , '_blank', 'location=no') 

Desde la página a.html hice clic en un enlace a www.example.com/b.html la próxima vez que haga clic de nuevo, el InAppBrowser está cerrado, pero debería volver a a.html .

¿Sabes cómo puedo habilitar el 'historial de navegación' para InAppBrowser?

Gracias.

Esto es posible ajustando el 'InAppBrowser.java'. Sé que esto es un poco extraño, pero esta es la única opción que tenía. Pero, esos pequeños ajustes que hice en el archivo java ahora me permite navegar de nuevo dentro de las páginas de mi aplicación.

Aquí está el cambio que se hará en InAppBrowser.java, En el método 'run' dentro del método showWebPage, habrá un código de escucha algo como esto:

 dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { public void onDismiss(DialogInterface dialog) { closeDialog(); } }); 

Debajo de esa línea agregue el código abajo,

 dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (event.getAction()!=KeyEvent.ACTION_DOWN) return true; if(keyCode==KeyEvent.KEYCODE_BACK){ goBack(); return true; }else { return false; } } }); 

Podría escuchar el botón de retroceso (suponiendo que esté en android) e inyectar la llamada history.back en el InAppBrowser.

 document.addEventListener("backbutton", function(){ //do some checks to make sure the browser is open or //whatever else you may need first, then: cordova.exec(null, null, "InAppBrowser", "injectScriptCode", ["history.back()"]); }, false); 

Además de lo que @Suresh Raja escribió, el código de referencia ya no existe. Usted puede agregar el código mejorado sugerido (siguiente) después de esta paz del código:

 dialog.setInAppBroswer(getInAppBrowser()); 

Código mejorado sugerido:

 dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (event.getAction()!=KeyEvent.ACTION_DOWN) return true; if (keyCode==KeyEvent.KEYCODE_BACK){ if (inAppWebView.canGoBack()) { inAppWebView.goBack(); } else { closeDialog(); } return true; } else { return false; } } }); 

Esto cerrará la aplicación en la última copia atrás (que puede resolver otro problema con el inAppBrowser.

EDIT: debe agregar la import android.content.DialogInterface para obtener este trabajo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.