Cordova 设备和应用程序事件
Cordova Device and Application events
我想在应用程序关闭或设备关闭/睡眠事件之前监听应用程序关闭和设备关闭等事件以 运行 某些代码(例如注销功能)。
Cordova/Phonegap 可以吗?我寻找插件,我找到了关于 PowerManagement 相关事件的插件,但没有找到关于这些事件的插件。
谢谢
您无法收听 onAppClose
、onDeviceShutdown
或 onExit
等事件 - 这些事件不存在 。
有些事件可以通过在您的代码中添加 eventListener
来触发。
例子
DeviceReady 事件侦听器
document.addEventListener("deviceready", yourCallbackFunction, false);
当您的设备进入 deviceready
状态时,yourCallbackFunction
将触发。
Cordova/Phonegap 提供的关于 eventListeners 的文档可以在这里找到:
Cordova - Eventlistener Documentation
正如 BipBip 在 中所说的那样,在 body
标签内使用 onunload
属性可能会触发此类事件,我只是在一个干净的 cordova 中进行了测试申请。
<!DOCTYPE html>
<html>
<head>
<!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">-->
<!-- <meta name="format-detection" content="telephone=no">-->
<!-- <meta name="msapplication-tap-highlight" content="no">-->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
</head>
<body onload="alert('onload fired');" onunload="alert('onunload fired');">
<script type="text/javascript" src="cordova.js"></script>
</body>
</html>
所以 onunload
从未触发(如果您将 alert
替换为 console.log()
)因为完全关闭的 cordova 应用程序 将从不触发此类事件。
所有这些行为的替代方法可能是 onPause
eventListener。这个在用户切换应用程序或点击主页按钮进入主屏幕后立即触发。该项目由以下人员实施:
document.addEventListener("pause", onPauseFired, false);
我认为此链接提供了您想要的有关 Cordova 生命周期的信息:
http://simonmacdonald.blogspot.fr/2011/04/phonegap-lifecycle-events.html
当您的应用程序退出时,将调用卸载事件。如果您的应用程序需要保存一些状态数据,这是一个有用的事件。您可以通过将卸载侦听器添加到 body 标记来像注册加载事件一样注册卸载侦听器。
<body onload="onLoad()" onunload="onUnLoaded()">
我想在应用程序关闭或设备关闭/睡眠事件之前监听应用程序关闭和设备关闭等事件以 运行 某些代码(例如注销功能)。
Cordova/Phonegap 可以吗?我寻找插件,我找到了关于 PowerManagement 相关事件的插件,但没有找到关于这些事件的插件。
谢谢
您无法收听 onAppClose
、onDeviceShutdown
或 onExit
等事件 - 这些事件不存在 。
有些事件可以通过在您的代码中添加 eventListener
来触发。
例子
DeviceReady 事件侦听器
document.addEventListener("deviceready", yourCallbackFunction, false);
当您的设备进入 deviceready
状态时,yourCallbackFunction
将触发。
Cordova/Phonegap 提供的关于 eventListeners 的文档可以在这里找到: Cordova - Eventlistener Documentation
正如 BipBip 在 body
标签内使用 onunload
属性可能会触发此类事件,我只是在一个干净的 cordova 中进行了测试申请。
<!DOCTYPE html>
<html>
<head>
<!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">-->
<!-- <meta name="format-detection" content="telephone=no">-->
<!-- <meta name="msapplication-tap-highlight" content="no">-->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
</head>
<body onload="alert('onload fired');" onunload="alert('onunload fired');">
<script type="text/javascript" src="cordova.js"></script>
</body>
</html>
所以 onunload
从未触发(如果您将 alert
替换为 console.log()
)因为完全关闭的 cordova 应用程序 将从不触发此类事件。
所有这些行为的替代方法可能是 onPause
eventListener。这个在用户切换应用程序或点击主页按钮进入主屏幕后立即触发。该项目由以下人员实施:
document.addEventListener("pause", onPauseFired, false);
我认为此链接提供了您想要的有关 Cordova 生命周期的信息:
http://simonmacdonald.blogspot.fr/2011/04/phonegap-lifecycle-events.html
当您的应用程序退出时,将调用卸载事件。如果您的应用程序需要保存一些状态数据,这是一个有用的事件。您可以通过将卸载侦听器添加到 body 标记来像注册加载事件一样注册卸载侦听器。
<body onload="onLoad()" onunload="onUnLoaded()">