17

私のアプリでは 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();

4

5 に答える 5

1

それはあなたがどこにいるかによって異なります:私のwindowsphone 8.1 lumia 925では、 history.go(-1); 、ながらnavigator.app.backHistory(); クラッシュする前に例外を引き起こします。

私の Android では (大多数だと思います)、navigator.app.backHistory(); 正常に動作します。

于 2014-11-04T09:37:36.290 に答える
1

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

于 2013-05-14T12:47:51.497 に答える
-2

解決しました!「TypeError: navigator.app is undefined」の取得を停止します

最初に使用しているデバイスを確認してから、関連するスクリプトを適用する関数を作成しました。

function onBackKeyDown() {
    var userAgent = navigator.userAgent || navigator.vendor || window.opera;
    if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)) {
        // IOS DEVICE
        history.go(-1);
    } else if (userAgent.match(/Android/i)) {
        // ANDROID DEVICE
        navigator.app.backHistory();
    } else {
        // EVERY OTHER DEVICE
        history.go(-1);
    }
}

これを戻るリンク/ボタンに追加して関数を呼び出します。

onclick="onBackKeyDown()"
于 2016-03-22T21:14:44.243 に答える