In Sencha touch se uso la visualizzazione di navigazione posso tornare indietro. Questo è abbastanza bene.
Ma cosa succede se il dispositivo utente colpisce il pulsante? sta uscendo direttamente dall'applicazione. Nel mio requisito non dovrebbe uscire dall'applicazione deve tornare alla schermata precedente. Come posso fare questo ?.
come gestire il pulsante back del dispositivo sull'applicazione sencha touch
risposta
È possibile gestire l'hardware di nuovo pulsante mi piace questo:
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
}
}
In quale classe o file JS dovrei applicare questo? –
Non ho trovato le istruzioni sulla pagina di supporto della cronologia che sono utili quando si cerca di farlo; Non sono riuscito a vedere comunque l'uso delle rotte quando si ha a che fare con una vista di navigazione che può avere una grande pila di viste su di esso in qualsiasi momento.
Se si desidera solo il pulsante Indietro, tuttavia, è possibile utilizzare le funzioni popstate
e pushstate
(vedere https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history per un riferimento). L'idea è che tu abbia push
uno stato quando aggiungi una vista e pop
spento quando ne rimuovi uno. Il pulsante fisico di back su un telefono Android o il pulsante indietro su un browser desktop chiama in effetti history.back()
; quindi tutto quello che devi fare è assicurarti che premendo il pulsante Indietro sulla barra del titolo faccia lo stesso, ed è ciò che fa scattare la vista di navigazione.
Per usufruire farlo funzionare in Sencha Touch, aggiungo quanto segue per il controllore principale:
In arbitri che ho riferimenti alla main
vista (un'istanza di Ext.navigation.View
) e alla sua barra del titolo, da cui è possibile agganciare l'evento del tasto posteriore es:
refs: {
main: 'mainview',
mainTitleBar: 'mainview titlebar',
}...
allega le seguenti funzioni mediante l'oggetto control
config ..
control: {
main: {
push: 'onMainPush'
},
mainTitleBar: {
back: 'onBack'
},
...
Questi sono definiti come:
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;
},
ho quindi collegare una funzione da eseguire quando lo stato viene estratto tramite la funzione init di ..
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);
},
Ora, premendo di nuovo sulla barra del titolo, esegue history.back()
, questo a sua volta spara l'evento popstate
che provoca l'apertura della vista principale.
Se si desidera vedere questo funziona su un'applicazione reale, esiste un'app di ricerca di proprietà (v. Basic!) Che utilizza questa tecnica su github here.
- 1. Sencha Touch itemtap
- 2. Come gestire la modifica dell'orientamento in Sencha Touch V2
- 3. Sencha Touch 2 - Prestazioni Android
- 4. Sencha Touch - Come implementare optgroup
- 5. IDE per Sencha Touch
- 6. Struttura dell'applicazione Sencha Touch
- 7. Sencha Touch e ExtJS
- 8. Sencha Touch 2 performance Android
- 9. Sencha Touch List Paging: numero limite del record del negozio
- 10. Sencha vs. jQuery Touch
- 11. Fisarmonica in Sencha touch
- 12. AngularJS con Sencha Touch
- 13. Come bloccare un carousel in Sencha Touch
- 14. Sencha Touch 2 Temi standard?
- 15. Sencha touch 2 Sostituzione ext.dispatch?
- 16. Sencha Touch over jquery Mobile
- 17. Sencha Touch - deseleziona l'elemento dell'elenco?
- 18. GWT back browser del pulsante
- 19. Come eseguire l'applicazione Sencha Touch in Eclipse
- 20. Sencha Touch 2 - Come ottenere i valori del modulo?
- 21. Sencha Touch IDE o Editor
- 22. Sencha Touch Label: ha un evento Tap?
- 23. Comportamento del pulsante di back Android
- 24. Come utilizzare l'API linkedin utilizzando sencha touch
- 25. Il listener di eventi backbutton Javascript sovrascrive il pulsante back del dispositivo Android
- 26. Sencha Touch 2: Facebook JS SDK non lavorare sul dispositivo, solo nel computer del browser
- 27. Android: come gestire il clic del pulsante
- 28. confusione tra Sencha Touch 2 e PhoneGap
- 29. App nativa Sencha Touch con autenticazione Facebook
- 30. JSF commandLink, POSTing e il pulsante back
questo è lo stesso problema che sto affrontando anche. Poiché tutte le app sono gestite da un singolo file html (non necessario), non vi è alcuna cronologia delle pagine visitate in precedenza e l'app viene chiusa sulla chiave posteriore. Ci potrebbe essere un modo da PhoneGap se stai usando. – SachinGutte
Si prega di mostrare il codice. – hekomobile
non è un singolo file da incollare qui. contiene tutti i file system e molti file – atluriajith