Ich benutze jquery mobile mit phonegap. Meine App hat zwei Seiten: Login-Seite und Listen-Seite. Wenn Sie sich erfolgreich angemeldet haben, geht der Benutzer zur Listenseite. Wenn sie dann die Zurück-Taste ihres Telefons (Android) drücken, kehren sie zur Anmeldeseite zurück. Ich will kein solches Verhalten. Ich möchte die App beenden.Jquery mobile, vorherige Seite entfernen
Antwort
Wie ich in dieser Frage beantwortet: page hash and backbutton issue phonegap+Jquery
Sie können Seiten ändern, ohne dass sie in Browser-History zu halten wie so:
$.mobile.changePage('#page', {reverse: false, changeHash: false});
Leider habe ich nicht verwalten die erste Seite zu verhindern, dass zu bleiben in Browser-History, so habe ich eine Abhilfe:
Seitenlayout:
<body>
<!-- page_1 before page_loading in source -->
<div data-role="page" id="page_1">
</div>
<!-- page_loading will be shown first -->
<div data-role="page" id="page_loading">
<div data-role="content">
<h1 >
<b>welcome</b>
</h1>
</div>
</div>
<div data-role="page" id="page_2">
</div>
</body>
jQuery:
function onBodyLoad()
{
//go to page_loading before deviceready without keeping it in browser history
$.mobile.changePage('#page_loading', {reverse: false, changeHash: false});
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
//your initialization code here...
//now go to page_1 without keeping it in browser history since the actual first page was #page_1 already
$.mobile.changePage('#page_1', {reverse: false, changeHash: false});
//your code here...
}
Dies sollte Ihren Bedürfnissen passen, versuchen Sie es einfach aus. „#page_loading“ Ihre Login-Seite wäre, „PAGE_1“ Liste Seite ...
Hinzufügen von Optionen für Reverse und changeHash nicht für mich arbeiten. mit Cordova v1.6
Ich endete über die OnTouch-Methode in meiner Android Activity.
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_BACK == keyCode) {
// Clear browsers history if user clicks back button
clearHistory();
}
return super.onKeyUp(keyCode, event);
}
Beachten Sie, dass changeHash: false zum Zielseite, nicht auf die Quelle verweist. Sie werden die Quellseite nicht aus dem Verlauf entfernen. Stattdessen wird nicht die Geschichte Hash aktualisiert werden, wenn auf die neue Seite zu bewegen
Wenn Sie die neueste Version von jQuery Mobile (1.4+) verwenden, können Sie dieses Skript verwenden:
$.mobile.pageContainer.pagecontainer('change', '#page', {reverse: false, changeHash: false});
jQuery.mobile.changePage
ist veraltet ab jQuery Mobile 1.4.0 und wird in 1.5.0 entfernt.
- 1. jquery ajax vorherige Anfragen entfernen
- 2. jQuery Mobile Ausrichtung Wechselschalter Seite
- 3. jQuery Mobile versteckt erste Seite, anstatt es zu entfernen
- 4. jQuery Mobile Debug Seite Umleitung
- 5. Wie animiert jQuery Mobile die Seite, wenn Sie zurück navigieren?
- 6. Weiße Seite beim Laden mit jQuery Mobile
- 7. jQuery Mobile „Fehler beim Laden der Seite“
- 8. jQuery Mobile AJAX lädt nicht Seite
- 9. Externe Seite verschwindet auf Refresh - jQuery Mobile
- 10. Seite in ein div laden jQuery Mobile
- 11. jQuery Mobile, Seite ändern auf Formular senden
- 12. Vorherige Seite Knopf
- 13. Vorherige Seite abrufen Url
- 14. Vorherige Seite suchen URL
- 15. jQuery Mobile NavBar mit Zurück-Taste der vorherigen Seite
- 16. Wie bekomme ich die vorherige Seite URL mit jquery
- 17. Ist jquery-mobile "mobile first"
- 18. jQuery-Mobile ListView Plugin ohne jQuery-Mobile
- 19. Anker entfernen, wenn in Mobile?
- 20. jQuery Datepicker vorherige vollständige Monate
- 21. jQuery: Lösche eine Seite
- 22. jQuery Mobile Page Navigation
- 23. JQuery-Mobile Scrollbar
- 24. jQuery Mobile Login-Skript
- 25. Mobile Jquery - Flip-Effekt
- 26. JQuery-mobile mehrseitige Formulare
- 27. Schließen jQuery Mobile Panel
- 28. Wie entfernen Sie Schlagschatten in grundlegenden Links in Jquery Mobile?
- 29. So entfernen Sie das bereits geöffnete Popup in Jquery Mobile
- 30. Jquery mobile Navigation push