检测应用程序重新聚焦事件
Detect application refocus event
我需要知道用户每次开始使用应用程序的时间。
Case 1 (OK): The app is not started.
用户从头开始应用程序
我在应用程序的引导中添加了一个监听器,并且我知道它何时启动。
案例2 (TODO):应用程序已经启动,但它不再是活动的
用户从任务栏重新加载应用程序。
我想知道应用程序何时从任务栏到前台(如alt+tab)。
这很难捕捉,因为应用程序仍在运行,我不知道该听哪个事件。事实上,我甚至不知道如何命名这种行为
在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');
}
一个ios应用开发者同意帮助我。他的回答非常适合我,因为它看起来很干净且可重复使用。我将在这里生成:
"app come to前台"事件可以通过applicationWillEnterForeground事件来捕获。Phonegap/Cordova允许通过Cordova类调用javascript函数。webView对象有一个专用的方法来启动js脚本。
于是我打开了project/Classes/Cordova/AppDelegate文件。m:
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"applicationWillEnterForeground: %@", self.viewController.webView);
[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"notifyForegroundEvent();"];
}
我添加了notifyForegroundEvent()方法在我的js文件的根的某处:
var notifyForegroundEvent = function() {
console.log('notifyForegroundEvent()');
// Do something here
}
等瞧
我看到在facebook(桌面,而不是移动)一段时间前,他们检查鼠标移动,以确定是否收到聊天消息应标记为已读或不。我知道这不是解决办法,但它可能会给你指明一个好的方向。我还会检查输入焦点发生了什么,当你切换到其他应用程序。也许它模糊。
- 将事件聚焦/模糊在可编辑内容的元素上
- onblur事件时,输入被强制聚焦
- 文本框聚焦事件并在IE9中输入问题
- 从onBlur事件中获取新聚焦的元素(如果有的话)
- 聚焦和模糊错误元素触发的事件
- 尝试在“单击”或“聚焦”GCSE搜索表单输入时触发jquery事件
- 聚焦并提交事件触发顺序
- 处理通过聚焦在子元素上并通过单击子元素外部触发的父元素的模糊事件
- AngularJS中模糊事件后的重新聚焦输入字段
- 什么'移动设备和计算机之间的点击和聚焦事件的区别是什么
- 意想不到的“聚焦”事件
- tinyMCE文本区域聚焦事件
- 如何检测tinyMCE文本区域模糊/聚焦事件
- 使用jQuery.scrollTop()在聚焦事件中改变垂直滚动位置时,不会触发单击事件
- 如何在angularJS指令中捕捉模糊或聚焦事件
- 鼠标按下事件抑制聚焦事件
- 在jquery中输入和聚焦事件
- 检测应用程序重新聚焦事件
- 是否有一种方法可以在模糊或聚焦事件上获得点击元素
- Javascript onblur /聚焦事件