web-dev-qa-db-de.com

Phonegap - navigator.app.backHistory () funktioniert nicht mit der HTML-Schaltfläche "Zurück"

In meiner App verwende ich phonegap 2.6.Für die Zurück-Schaltfläche verwende ich die folgende Funktion

document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown() {
    alert("hello");
    navigator.app.backHistory();
}

document.addEventListener('deviceready', onDeviceReady, true);

Die obige Funktion funktioniert gut, wenn ich auf die Zurück-Schaltfläche der Hardware des Geräts klicke . Aber wenn ich auf die Schaltfläche "Zurück" klicke, funktioniert es nicht.

Ich habe meinen hinteren Knopf wie folgt gestaltet:

<a class="ui-link" href="#" rel="external" onclick="onBackKeyDown()">
        <img src="images/icon-back.png" alt="Phone" border="0">
</a>

Diese Schaltfläche funktioniert jedoch gut für diese navigator.app.exitApp(); (Anwendungsexit).

//Working Fine
function onBackKeyDown() {
    navigator.app.exitApp();
}

//Not Working
function onBackKeyDown() {
    navigator.app.backHistory();
}

funktioniert aber nicht für navigator.app.backHistory();.

16
Iam4fun

Ich habe drei verschiedene Dinge ausprobiert, als ich dieselbe Situation hatte:

  • window.history.back()

  • navigator.app.backHistory();

  • History.go(-1);

Einzeln löst keines davon das Problem. Ich habe alle drei Dinge zusammengefügt und zu meiner Überraschung hat es funktioniert. Ich weiß wirklich nicht, was dahinter steht.

Dann reduzierte ich mich auf zwei Funktionen und entfernte:

  • window.history.back()

Jetzt benutze ich diese Funktion und sie funktioniert einwandfrei.

//Works Fine
function onBackKeyDown() {
    history.go(-1);
    navigator.app.backHistory();
}
14
sdg

es hängt davon ab, wo du bist: an meinem fenstertelefon 8.1 lumia 925, es funktioniert history.go (-1); , while navigator.app.backHistory (); verursacht eine Ausnahme vor dem Absturz.

Auf meinem Android (ich glaube die Mehrheit), navigator.app.backHistory (); Funktioniert einwandfrei.

1
eeadev

Wenn Sie das Attribut data-rel = "back" für einen Anker verwenden, ahmt ein Klick auf diesen Anker die Zurück-Schaltfläche nach. Er führt einen Verlaufseintrag zurück und ignoriert die Standardhref des Ankers.

1
Mehmet