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

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

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

秒表的代码如下:

this.timer = window.setInterval(function(){ instance.runtime += Stopwatch.INCREMENT; instance.doDisplay(); }, Stopwatch.INCREMENT); 

我知道原生解决scheme,但为了实现跨平台兼容性,我想坚持使用JavaScript解决scheme。

由于setIntervals不能在后台工作,我会使用recursionsetTimeout来代替。
这意味着你不能跟踪+ =的时间,所以你需要使用(new Date).getTime(); 或Date.now()代替。

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

如果setTimeout在应用程序中没有恢复生效,那么重启应该会更简单。