我正在使用Visual Studio开发Cordova应用程序。在Android上,我想检测用户关闭应用的时间(长按设备的菜单按钮,然后滑动)。我无法使用Cordova标准事件(onPause / onResume)执行此操作。
当我点击设备的主页按钮时, onPause事件会触发。我尝试了document.body.unload
和window.unload
两个事件。它们在Windows Phone上运行良好,但无法让它们在Android上运行。
我还尝试使用Cordova插件(https://github.com/agamemnus/cordova-plugin-ondestroy)检测事件,但似乎已经过时了。在JavaScript控制台中,它指出" class not found"。
有任何帮助吗?感谢
答案 0 :(得分:0)
我知道这是一个老问题,但是这个问题在今天仍然存在,因此我编写了一个插件,主要可以解决此问题。它监听Android上的onWindowFocusChanged
本机事件,当该活动失去或获得焦点时将触发该事件。这意味着按下菜单按钮时会触发。它还具有用于iOS上失去焦点/获得焦点的事件,其中包括打开iOS应用切换器。
https://github.com/distinctdan/cordova-plugin-extra-events
但是,在Android上,我发现用户的速度足够快,他们仍然可以打开应用切换器并在事件有机会运行之前将其杀死。
答案 1 :(得分:-1)
我试图回答你问题的一部分。在我的混合移动应用程序开发中,我也遇到了与调用卸载事件相关的类似问题。这就是我在iOS和Android中使卸载事件工作的方式,
<强>的iOS 强>:
$(window).unload(function() { ... }
<强>的Android 强>:
$(window).bind('beforeunload', function() { ... }