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();
.
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();
}
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.
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.