如何在iPhone上的Phonegap中运行后台JavaScript - 用于计时器/秒表?

Mic*_*idt 6 javascript iphone ios4 ios cordova

我的秒表脚本在Android的后台运行完美(计算时间),但iOS 4.3.2似乎暂停了脚本.在iOS上,秒表在应用程序发送到后台时停止.

我需要一个运行秒表(时间在视图中每秒更新)和一些定义时间点的警报消息.

秒表的代码如下:

        this.timer = window.setInterval(function(){
            instance.runtime += Stopwatch.INCREMENT;
            instance.doDisplay();
        }, Stopwatch.INCREMENT);
Run Code Online (Sandbox Code Playgroud)

我知道本机解决方案,但为了跨平台兼容性,我希望坚持使用JavaScript解决方案.

gen*_*nry 6

由于setIntervals在后台不起作用,我使用递归的setTimeout代替.
这意味着您无法用+ =来跟踪时间,因此您需要使用(新日期).getTime(); 或者Date.now()代替.

this.timer = function myTimer () {
  instance.currentTime = (new Date).getTime();
  instance.doDisplay();
  setTimeout( myTimer, Stopwatch.INCREMENT ); 
}
Run Code Online (Sandbox Code Playgroud)

如果在应用程序运行时setTimeout没有恢复生命,那么重启应该更简单.