web-dev-qa-db-fra.com

Phonegap - navigator.app.backHistory () ne fonctionne pas sur le bouton retour HTML

Dans mon application, j'utilise phonegap 2.6.Pour le bouton Précédent, j'utilise la fonction suivante

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

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

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

La fonction ci-dessus fonctionne correctement lorsque je clique sur le bouton retour du périphérique . Mais lorsque je clique sur le bouton retour, cela ne fonctionne pas.

J'ai conçu mon bouton de retour comme ci-dessous:

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

Mais ce bouton fonctionne bien pour cette navigator.app.exitApp(); (sortie de l'application).

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

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

mais ne fonctionne pas pour navigator.app.backHistory();.

16
Iam4fun

J'ai essayé 3 choses différentes quand j'ai fait face à la même situation:

  • window.history.back()

  • navigator.app.backHistory();

  • History.go(-1);

Individuellement, aucun de ceux-ci ne résout le problème. J'ai mis les 3 choses ensemble et à ma grande surprise, cela a fonctionné. Je ne sais vraiment pas ce qu'il y a derrière.

Puis j'ai diminué à deux fonctions et enlevé:

  • window.history.back()

Maintenant, j'utilise cette fonction et ça fonctionne bien.

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

cela dépend où vous êtes: sur mon windowsphone 8.1 lumia 925, cela fonctionne history.go (-1);, while navigator.app.backHistory (); provoque une exception avant de planter.

Sur mon Android (je crois la majorité), navigator.app.backHistory (); fonctionne correctement.

1
eeadev

Si vous utilisez l'attribut data-rel = "back" sur une ancre, tous les clics sur cette ancre imiteront le bouton Précédent, en remontant une entrée de l'historique et en ignorant la valeur par défaut de l'ancre href.

1
Mehmet