我需要知道每次用户开始使用该应用程序。检测应用程序重新调焦事件
案例1(确定):该应用程序未启动。
用户从头开始应用程序。
我在应用程序的引导程序中添加了一个侦听器,并且我知道它何时启动。
案例2(TODO):应用程序已启动,但它不活跃了
用户重新从任务栏中的应用程序。
我想知道应用程序何时从任务栏到前台(如alt +选项卡)。
这很难理解,因为应用程序仍在运行,我不知道要听哪个事件。事实上,我甚至不知道如何命名这种行为。
我需要知道每次用户开始使用该应用程序。检测应用程序重新调焦事件
案例1(确定):该应用程序未启动。
用户从头开始应用程序。
我在应用程序的引导程序中添加了一个侦听器,并且我知道它何时启动。
案例2(TODO):应用程序已启动,但它不活跃了
用户重新从任务栏中的应用程序。
我想知道应用程序何时从任务栏到前台(如alt +选项卡)。
这很难理解,因为应用程序仍在运行,我不知道要听哪个事件。事实上,我甚至不知道如何命名这种行为。
一个ios-app开发人员接受来帮助我。他的回答非常适合我,因为它看起来很干净而且可以重复使用。所以我会在这里制作它:
“app come to foreground”event can catch through through applicationWillEnterForeground event。 Phonegap/Cordova允许通过Cordova类调用JavaScript函数。 webView对象具有启动js脚本的专用方法。
所以,我打开该文件谟/班/科尔多瓦/ AppDelegate.m:
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"applicationWillEnterForeground: %@", self.viewController.webView);
[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"notifyForegroundEvent();"];
}
而且我在我的js文件的根的地方加入notifyForegroundEvent()方法:
var notifyForegroundEvent = function() {
console.log('notifyForegroundEvent()');
// Do something here
}
Etvoilà
前段时间,我在facebook上看到(destkop,而不是移动),他们检查mousemove以确定收到的聊天消息是否应标记为已读或未读。我知道那不是解决方案,但它可能会指向一个好的方向。 我还会检查在切换到其他应用程序时输入焦点会发生什么。也许它模糊。
好主意,虽然我想我会搜索objective-c中的东西,如果解决方案没有在sencha触摸实施 – vaugham 2013-03-14 13:54:18
在科尔多瓦有一个应用程序恢复和暂停的事件,所以你不需要编辑科尔多瓦类文件。以下是我目前在iOS/Android应用中使用的工作代码。
window.onload = function() {
//only fired once when app is opened
document.addEventListener("deviceready", init, false);
//re-open app when brought to foreground
document.addEventListener("resume", init, false);
//trigger when app is sent to background
document.addEventListener("pause", onPause, false);
}
function init() {
console.log('device ready or resume fired');
}
为什么这个标签为“iPad”? – Dancreek 2013-03-14 13:37:05
因为应用程序是打算运行在一个iPad上,与科尔多瓦/ sencha触摸框架 – vaugham 2013-03-14 13:52:40