En Sencha touch, si uso la vista de navegación puedo obtener el botón Atrás. Esto está bastante bien.
Pero, ¿qué ocurre si el usuario toca el botón de atrás del dispositivo? está saliendo directamente de la aplicación. En mi requerimiento, no debe salir de la aplicación para regresar a la pantalla anterior. ¿Cómo puedo hacer esto?
cómo manejar el botón Atrás del dispositivo en la aplicación sencha touch
Respuesta
Se puede controlar el hardware botón de retroceso de esta manera:
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
}
}
¿En qué clase o archivo JS debo aplicar esto? –
No encontré las instrucciones en la página de soporte de historial útiles cuando intento hacer esto; De todos modos, no pude ver las rutas cuando se trata de una vista de navegación que puede tener una gran cantidad de vistas en él en cualquier momento.
Si solo desea que funcione el botón Atrás, puede usar las funciones popstate
y pushstate
(consulte https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history para obtener una referencia). La idea es que push
un estado cuando se agrega una vista y pop
cuando se elimina uno. El botón de retroceso físico en un teléfono Android, o el botón Atrás en un navegador de escritorio llama efectivamente al history.back()
; así que todo lo que tiene que hacer es asegurarse de que presionar el botón Atrás en la barra de título haga lo mismo, y es eso lo que hace que la vista de navegación aparezca.
Para hacer un uso que funcione en Sencha Touch, añado lo siguiente al controlador principal:
en las referencias que tengo referencias al main
vista (una instancia de Ext.navigation.View
) y a su barra de título, desde el que puede engancharse en el caso de que el botón de retroceso por ejemplo:
refs: {
main: 'mainview',
mainTitleBar: 'mainview titlebar',
}...
adjunto las siguientes funciones a través del objeto control
config ..
control: {
main: {
push: 'onMainPush'
},
mainTitleBar: {
back: 'onBack'
},
...
Estos se definen como:
onMainPush: function(view, item) {
//do what ever logic you need then..
history.pushState();
},
onBack: function() {
history.back(); //will cause the onpopstate event to fire on window..
//prevent back button popping main view directly..
return false;
},
entonces hay que adjuntar una función que se ejecuta cuando el estado se extrae a través de la función init del ..
init: function() {
/* pop a view when the back button is pressed
note: if it's already at the root it's a noop */
var that = this;
window.addEventListener('popstate', function() {
that.getMain().pop();
}, false);
},
Ahora, al pulsar de nuevo en la barra de título, ejecuta history.back()
, esto a su vez desencadena el evento popstate
que hace que aparezca la vista principal.
Si desea ver esto trabajando en una aplicación real, hay una aplicación de búsqueda de propiedades (v. Basic!) Usando esta técnica en github here.
- 1. Navegando con un botón en sencha touch
- 2. Cómo manejar el cambio de orientación en Sencha Touch V2
- 3. Cómo iniciar una aplicación Sencha Touch
- 4. Sencha Touch 2 - Android Performance
- 5. Sencha Touch y ExtJS
- 6. El navegador admite sencha touch
- 7. Acordeón en Sencha touch
- 8. Cómo manejar el botón Atrás en Windows Phone 7
- 9. ¿Cómo sincronizo entre tiendas en Sencha Touch?
- 10. Sencha Touch Vs JQTouch
- 11. ¿Cómo puedo incrustar video en mi aplicación Sencha Touch?
- 12. Sencha Touch 2 android performance
- 13. Sencha Touch itemtap
- 14. Desactivar monitorOrientation en sencha touch
- 15. Sincronización de almacenamiento Sencha Touch
- 16. Sencha vs. jQuery Touch
- 17. sencha touch and charts
- 18. Cómo manejar el envío de formulario ASP.NET MVC Botón Atrás?
- 19. Phonegap Android Botón Atrás - cerrar la aplicación con el botón Atrás en la página principal
- 20. Sencha Touch - En la necesidad de una lista anidada ejemplo
- 21. Cómo guardar la aplicación en el botón Atrás, presione
- 22. Sencha Touch Label: ¿tiene un Tap Event?
- 23. Mejores prácticas Sencha Touch MVC
- 24. Sencha Touch agregar elementos dinámicamente
- 25. Sencha Touch 2 versión nativa vs envoltura Sencha Touch 2 en Phonegap
- 26. Cómo atrapar el evento del botón Atrás
- 27. Sencha Touch 2 Temas estándar?
- 28. Sencha Touch 2: Insertar en TreeStore/NestedList
- 29. Sencha touch 2- Ext.dispatch replacement?
- 30. ¿Cómo hacer un APK firmado en Sencha Touch 2
esto es mismo problema que yo también estoy enfrentando. Como todas las aplicaciones son manejadas por un único archivo html (no es necesario), no hay historial de páginas visitadas previamente y la aplicación se cierra al volver la tecla. Puede haber una forma de phonegap si está usando. – SachinGutte
Por favor, muestre su código. – hekomobile
es una aplicación que no tiene un solo archivo para pegar aquí. contiene todos los archivos del sistema y muchos archivos – atluriajith