私のアプリでは、phonegap 2.6を使用しています。戻るボタンには、次の機能を使用しています
_document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown() {
alert("hello");
navigator.app.backHistory();
}
document.addEventListener('deviceready', onDeviceReady, true);
_
上記の機能デバイスのハードウェアの戻るボタンをクリックすると正常に機能します。しかし、戻るボタンをクリックしても機能しません。
私は次のように戻るボタンを設計しました:
_<a class="ui-link" href="#" rel="external" onclick="onBackKeyDown()">
<img src="images/icon-back.png" alt="Phone" border="0">
</a>
_
ただし、このnavigator.app.exitApp();
(アプリケーション出口)の場合、このボタンは正常に機能しています。
_//Working Fine
function onBackKeyDown() {
navigator.app.exitApp();
}
//Not Working
function onBackKeyDown() {
navigator.app.backHistory();
}
_
navigator.app.backHistory();
では機能しません。
同じ状況に直面したとき、私は3つの別々のことを試しました:
window.history.back()
navigator.app.backHistory();
History.go(-1);
個々に、これらのどれも問題を解決しません。私は3つすべてを組み合わせて、驚いたことにうまくいきました。その背後に何があるのか本当にわかりません。
次に、2つの関数に減らして削除しました。
window.history.back()
今、私はこの機能を使用していますが、うまく機能しています。
//Works Fine
function onBackKeyDown() {
history.go(-1);
navigator.app.backHistory();
}
それはあなたがどこにいるかによって異なります:私のWindows Phone 8.1 Lumia 925ではhistory.go(-1);動作しますが、navigator.app.backHistory();は例外を発生させますクラッシュする前に。
私のAndroid(私は大多数を信じています)では、navigator.app.backHistory();は正しく動作します。
アンカーで属性data-rel = "back"を使用する場合、そのアンカーをクリックすると、[戻る]ボタンを模倣して1つの履歴エントリに戻り、アンカーのデフォルトのhrefを無視します。