Javascript 检测应用程序重新聚焦事件
我需要知道用户每次开始使用应用程序的时间 案例1(正常):应用程序未启动。 用户从头开始启动应用程序 我在应用程序的引导程序上添加了一个侦听器,我知道它何时启动 案例2(TODO):应用程序已启动,但不再处于活动状态 用户从任务栏重新加载应用程序 我想知道应用程序何时从任务栏转到前台(比如alt+tab) 这很难捕捉,因为应用程序仍在运行,我不知道该听哪个事件。事实上,我甚至不知道如何命名这种行为。正如我不久前在facebook(destkop,而非mobile)上看到的,他们检查mousemove以确定收到的聊天信息是否应标记为已读。我知道这不是解决办法,但它可能会为你指明一个好的方向。Javascript 检测应用程序重新聚焦事件,javascript,ipad,sencha-touch,cordova-2.0.0,Javascript,Ipad,Sencha Touch,Cordova 2.0.0,我需要知道用户每次开始使用应用程序的时间 案例1(正常):应用程序未启动。 用户从头开始启动应用程序 我在应用程序的引导程序上添加了一个侦听器,我知道它何时启动 案例2(TODO):应用程序已启动,但不再处于活动状态 用户从任务栏重新加载应用程序 我想知道应用程序何时从任务栏转到前台(比如alt+tab) 这很难捕捉,因为应用程序仍在运行,我不知道该听哪个事件。事实上,我甚至不知道如何命名这种行为。正如我不久前在facebook(destkop,而非mobile)上看到的,他们检查mousemo
我还会检查当你切换到其他应用程序时,输入焦点会发生什么变化。也许它模糊了。一位ios应用程序开发人员接受了我的帮助。他的回答很适合我,因为它看起来很清楚。因此,我将在这里制作: “应用程序来到前台”事件可以通过应用程序将进入前台事件捕获。 Phonegap/Cordova允许通过Cordova类调用javascript函数。webView对象有一个专用的方法来启动js脚本 所以我打开了Projet/Classes/Cordova/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
}
Et voiláCordova中有一个应用程序恢复和暂停事件,因此您无需编辑Cordova类文件。下面是我目前在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”?因为该应用程序打算在iPad上运行,带有cordova/sencha touch Framework这是一个不错的想法,尽管我认为如果解决方案没有在sencha touch中实现,我会在objective-c中搜索一些东西