1

私の phonegap アプリには、基本的に 2 つの「ページ」があります。実際には、内容が innerHTML によって変更された単なる div です。戻るキーは、「ホームページ」 (div id= num) で押されたときにアプリを終了し、2 番目のページ (div id= ) で押されたときにホームページに戻り、readout通常の Android の習慣をコピーすることを目的としています。ブール値を定義して、homeそれがどのページにあるかを追跡し、onBackKeyDown()さまざまなことを行うようにしました。

function onBackKeyDown() {
            if(home==true){
                navigator.notification.alert(
            'Bye!',  // message
            'Quitting',            // title
            'oops')
                navigator.app.exitApp();
            }
            else {
                resetAll();}
        }

ただし、ページでの戻るキーの動作はreadout、特定の機能dispatch()が実行されているかどうかによって異なります。まだ実行されていない場合、戻るキーはすぐにアプリを終了します (onBackKeyDown()その関数がアプリを終了するときに追加のアラートを追加したため、トリガーされません)。

dispatch()やバックキーとは何の関係もないようですhomeので、何が問題なのかわかりません。homefirebugで試してみると、いつも正しいようです。ここにありdispatchます:

function dispatch()
        {
            navigator.notification.vibrate(50);

            d= new Date();
            times[i]=d.getTime();


            if(i==0)
            {
                 document.getElementById('output').innerHTML = 'Calculating...';
                 document.getElementById('avDisTime').innerHTML ='Calculating...';
            }


            else
            {
                var avTime=getAverageTime(times);

                var throughput=passengers*3600000/avTime;

                document.getElementById('output').innerHTML = throughput.toFixed(0) + ' pph';

                document.getElementById('avDisTime').innerHTML =(avTime/1000).toFixed(0)+' seconds';
            }

            return false;
        }

ここにページ全体があります。ありがとう!

4

1 に答える 1

0

問題は、onBackKeyDown() 関数を起動するときにデフォルトの戻るボタンの動作を上書きしている可能性があります。dispatch() 関数の問題に関係なく、onBackKeyDown() 関数内にこの行を追加してみてください。

document.removeEventListener("backbutton", onBackKeyDown, false);

アプリのデフォルトの戻るボタンの動作を復元します。

于 2012-09-24T06:47:56.627 に答える