web-dev-qa-db-ja.com

Phonegap-navigator.app.backHistory()がHTMLの戻るボタンで機能しない

私のアプリでは、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();では機能しません。

17
Iam4fun

同じ状況に直面したとき、私は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();
}
13
sdg

それはあなたがどこにいるかによって異なります:私のWindows Phone 8.1 Lumia 925ではhistory.go(-1);動作しますが、navigator.app.backHistory();は例外を発生させますクラッシュする前に。

私のAndroid(私は大多数を信じています)では、navigator.app.backHistory();は正しく動作します。

1
eeadev

アンカーで属性data-rel = "back"を使用する場合、そのアンカーをクリックすると、[戻る]ボタンを模倣して1つの履歴エントリに戻り、アンカーのデフォルトのhrefを無視します。

1
Mehmet