0

我的应用程序有一个计时器,它应该在应用程序处于后台时触发,但是,由于 ios 的怪癖,我的 onPause 函数在应用程序恢复之前不会触发。我一直在研究从 obj-C 触发 javascript 函数的方法,但似乎无法让它工作。

我有以下代码

// CUSTOM CODE TO DETECT APP STATE
- (void)applicationDidEnterBackground:(UIApplication *)application {

NSString* jsString = [NSString stringWithFormat:@"onPause;"];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];

NSLog(@"OBJ-C paused");

}

我的 js 代码看起来像这样;

function onPause() {
            console.log("JS paused");
        }

当应用程序进入后台时,我可以看到我的 OBJ-C 日志,但无法获取 js 日志,并且当我重新启动应用程序时,计时器没有暂停。

任何人都可以帮助或建议我做错了什么,我没有使用 OBJ-C 的经验并且正在使用 Phonegap 2.1.0。

4

2 回答 2

0

尝试使用applicationWillResignActive:.

如果应用程序已经发送到后台,该应用程序可能不再做出反应。

于 2012-10-22T12:24:46.747 回答
0

解决了!!!在下面的链接。有 2 个未记录的事件;辞职和活跃,这使它按我的目的工作。

document.addEventListener("resign", resign, false);
document.addEventListener("active", active, false);

        function resign() {
            // pause code fired
        }

        function active() {
            //resume code fired
        }

希望能帮助到你!

于 2012-10-23T11:06:06.127 回答