本文概述
- 1.在设备就绪事件之后添加侦听器
- 2.将KeepRunning首选项添加到config.xml中
- 3.确认已加载cordova
document.addEventListener("resume", function(){// Do something on resume}, false);
document.addEventListener("pause", function(){// Do something on pause}, false);
如果你使用的代码看起来像上一个示例, 并且它不起作用(永远不会触发回调函数), 那么你需要知道自己做错了什么。是的, 错误不在cordova中, 而是在你的工作方式中, 你可能以某种方式通过了阻止事件执行的关键步骤。
在本文中, 我们将显示你经过的3个步骤, 可能会导致你的应用无法运行暂停和恢复事件。
1.在设备就绪事件之后添加侦听器确保在执行deviceready事件之后或期间附加了pause and resume事件。此事件对于任何应用程序都是必不可少的。它表明Cordova的设备API已加载并可以访问。 Cordova由两个代码库组成:本机代码和JavaScript。在加载本机代码时, 将显示自定义加载图像。但是, 仅在DOM加载后才加载JavaScript。这意味着在相应的本机代码可用之前, Web应用程序可能会调用Cordova JavaScript函数。
// Add the deviceready eventdocument.addEventListener("deviceready", function(){// attach eventsdocument.addEventListener("resume", onResume, false);
document.addEventListener("pause", onPause, false);
}, false);
function onPause() {alert('paused');
}function onResume() {alert('resumed');
}
如果你运行你的应用程序, 但该功能仍被忽略, 请继续执行步骤2。
2.将KeepRunning首选项添加到config.xml中确保你的config.xml文件的KeepRunning首选项设置为true。此首选项确定即使在暂停事件触发后, 应用程序是否仍在后台运行。将其设置为false不会在暂停事件后终止应用程序, 而只是在应用程序处于后台时停止在cordova Web视图中执行代码。
在插件的config.xml文件的< widget> 标记内添加以下标记:
<
preference name="KeepRunning" value="http://www.srcmini.com/true"/>
如果你构建并运行你的应用程序, 并且回调仍被忽略, 请继续执行步骤3。
3.确认已加载cordova最后一步, 这可能是未触发侦听器的原因。确保在主html文档中包含cordova脚本。一些开发人员评论cordova脚本是因为他们直接在浏览器中进行测试, 有时这可能会导致此问题, 因为他们忘记了再次包含该脚本。
验证你的文档, 如果确实没有加载脚本, 请使用以下脚本标记添加它:
<
script type="text/javascript" src="http://www.srcmini.com/cordova.js">
<
/script>
那应该可以解决问题, 并且你的回调将被毫无问题地触发。请记住, 当你添加新平台时(例如, cordova平台添加android, 然后cordova构建android), 将添加此文件, 该文件(cordova.js)会在assets / www文件夹中自动创建。
【Cordova(暂停和恢复事件未触发)】编码愉快!
推荐阅读
- 编译的cordova android应用已成功构建,但未在android 4.2中启动
- 在Cordova中使用JavaScript创建签名板
- 如何从头开始在Windows中使用Cordova为Android创建混合移动应用程序
- 如何向Android Cordova插件添加依赖项(Maven或JCenter)
- 如何在Android中使用viewPagerindicator和ViewPager()
- Android setVisibility无法在PagerAdapter中运行
- Android~为什么FragmentPagerAdapter会清除我的Layouts TabItem图标()
- 在Swing中模拟Android
- Android模拟器缺少硬件配置文件