后退按钮随机工作

时间:2012-09-23 18:30:27

标签: javascript android cordova

我的phonegap应用程序基本上有两个“页面”,实际上只是一个div,其内容由innerHTML更改。后退键用于在“主页”(div id = num)上按下时退出应用程序,并在第二页(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或后退密钥没有任何关系,所以我不知道问题是什么。当我在萤火虫中尝试时,home似乎一直都是正确的。这是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;
        }

here is the whole page。谢谢!

1 个答案:

答案 0 :(得分:0)

问题可能是你在触发onBackKeyDown()函数时覆盖默认的后退按钮行为。无论dispatch()函数有什么问题,请尝试在onBackKeyDown()函数中添加此行。

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

它恢复应用程序的默认后退按钮行为。