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 .
- Cordova InAppBrowser y cookie compartida con webview
- Phonegap Android InAppBrowser no funciona
- InAppBrowser reproduce video de vimeo en el reproductor de video nativo automáticamente?
- cordova inappbrowser archivo subir android
- Cordova - Navegador en la aplicación para mostrar el sitio web como vista de escritorio
¿Sabes cómo puedo habilitar el 'historial de navegación' para InAppBrowser?
Gracias.
- Maneje el botón de retroceso de Android en Phonegap InAppBrowser
- Los oyentes de eventos window.open que no funcionan en Android 4.4.2
- Phonegap inAppBrowser, target _self no funciona
- Cordova inAppBrowser "ResourceType" tipo de problema para la versión de construcción
- No se puede escribir en el campo de entrada después de cargar una página con InAppBrowser y la carga del hilador
- Devoluciones de llamada de Android InAppBrowser _system
- ¿Por qué el agente de usuario se envía como "Apache-HttpClient / UNAVAILABLE (java 1.4)"
- ¿Cómo puedo obtener el InAppBrowser cordova para proporcionar una manera para el usuario para cerrar el navegador cuando se utiliza un dispositivo Android?
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.