0

私はphonegapアプリケーションに取り組んでいます。私は1つの問題に直面しています。

アプリケーションに 4 つの HTML ページがあります。すべてのページには、ボタンのようなウィジェットや、ボタンをクリックすると次のページに移動するリストビューが含まれています。しかし、最初のページに戻りたいときはできません。つまり、デバイスの戻るボタンを使用して戻ろうとすると、アプリが閉じます。

ユーザー定義ではなく、デバイスの戻るボタンを使用しているため、それを処理する必要があります。onBackPressed();アンドロイドと同じ。

WebView ウィジェットが原因であることはわかっています。しかし、解決策を見つけることができません。

JavaScript、CSS、AJAX、jQuery、HTML5 は初めてです。

phonegapでバックプレスを処理するには?

4

3 に答える 3

2

この問題を解決するための回避策を作成できます。

戻るボタンが押されたときにトリガーされる関数を定義し、ユーザーがどのページにいるかを確認し、各ページに応じて異なるアクションを実行できます。たとえば、彼がページ 3 にいる場合はページ 2 に戻り、ページ 2 の場合はページ 1 に戻り、彼がページ 1 にいる場合はアプリケーションを閉じることができます。

あなたのために例を書きました:

    <script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap is loaded and it is now safe to make calls PhoneGap methods
    function onDeviceReady() {
        // Register the event listener
        document.addEventListener("backbutton", onBackKeyDown, false);
    }

    // Handle the back button
    function onBackKeyDown() {
        var whichPage = functionToDetectCurrentPage(); //create a function or detect it somehow
        switch(whichPage){
            case "Page1":
              //works only in android, iOS not quite sure, but heard it's not possible
              //to do programatically
              navigator.app.exitApp();
              break;
            case "Page2":
              window.location = "Page1.html";
              break;
            case "Page3":
              window.location = "Page2.html";
              break;
            case "Page4":
              window.location = "Page2.html";
              break;
        }
    }

phonegap のドキュメントをご覧ください。 http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html#backbutton

それがあなたを助けるかどうか私たちに知らせてください!

于 2013-09-04T16:38:53.650 に答える
1

アプリによってはできない場合がありますinbrowser

関連する SO の回答を参照してください: Phonegap InAppBrowser で Android の戻るボタンを処理する

于 2013-09-04T12:55:45.910 に答える
0

これには「戻るボタン」イベントを使用できます。

構文 :document.addEventListener("backbutton", yourCallbackFunction, false);

そして、「yourCallbackFunction」をこのように書くことができます。

function yourCallbackFunction(){ window.history.back(); }

ドキュメント リンクhttps://cordova.apache.org/docs/en/4.0.0/cordova/events/events.backbutton.html

于 2016-05-04T13:08:04.227 に答える