Cordova iOS onResume 在启动和崩溃应用程序时触发

Posted

技术标签:

【中文标题】Cordova iOS onResume 在启动和崩溃应用程序时触发【英文标题】:Cordova iOS onResume firing at startup and crashing app 【发布时间】:2016-02-21 18:35:27 【问题描述】:

我目前只是为 ios 8+ 构建,我正在模拟器中测试 iPhone 6 和 6S+。我正在使用命令行来构建和运行,并且正在使用 Cordova CLI。我还多次使用 XCode 来检查功能或修复配置问题。

这不是我使用 Cordova 构建的第一个应用程序,而且我之前能够毫无问题地使用 resume 事件。

我正在使用document.addEventListener("resume", onResume(), false); 在我的应用程序恢复时触发某些功能。但是,此功能在首次启动时触发,而在启动时根本不触发。似乎只要恢复功能触发它就会使我的应用程序崩溃。

我已将我的应用程序简化为基本框架,现在 onResume 函数中什么都没有发生,除了以下内容:

function onResume() 
    setTimeout(function()
        console.log('App resumed');
    ,0);   

这里有点发疯了。我安装了以下插件。

com.telerik.plugins.healthkit 0.4.2“HealthKit” cordova-plugin-console 1.0.2“控制台” cordova-plugin-splashscreen 3.1.0“启动画面” cordova-plugin-statusbar 2.1.1“状态栏” cordova-plugin-webserver 1.0.3 "CordovaWebServer" cordova-plugin-whitelist 1.2.1“白名单”

【问题讨论】:

在您的帖子中回答以下问题。因为这似乎是你关于这个主题的第一篇文章。这是您的第一个混合应用程序吗?您的目标平台及其目标版本是什么:android 4、5、6? iOS 7、8、9?你在使用CLI, SDK or Build 吗?请不要假设答案,请阅读链接。一旦您回答了帖子中的问题,请在 cmets 中回复,以便我知道您已在帖子中添加信息。 @JesseMonroy650 感谢您的回复。我已经更新了我的帖子。 我刚刚将事件代码放回原处,现在它可以工作了。我不知道我之前做了什么导致它不起作用,但显然一定是我自己造成的问题。 @JesseMonroy650 感谢您的帮助,很抱歉浪费了您的时间。 你真的在使用document.addEventListener("resume", onResume(), false); 吗?应该是document.addEventListener("resume", onResume, false); 没关系。我们都会遇到这些类型的错误。 【参考方案1】:

设法解决了这个问题,但不确定我做错了什么。我只能假设我一定有错误的事件名称,或者在我尝试修复它时,我在修复前一个问题之前添加了另一个问题。无论哪种方式,我做错了什么都会导致问题。

检查自己的事情:

您的document.addEventListener('resume', onResume, false); 事件侦听器在设备准备就绪触发后运行代码。 您调用的函数不包含 ()。例如。 onResume,不是onResume()。 您在恢复事件侦听器中只包含了一个函数名称,没有其他任何内容。 您调用的函数包含一个 0 毫秒的 setTimeout 来绕过 iOS 怪癖。 您已正确拼写函数和恢复事件。

【讨论】:

以上是关于Cordova iOS onResume 在启动和崩溃应用程序时触发的主要内容,如果未能解决你的问题,请参考以下文章

Cordova,onResume() 仅在我包含 alert() 时才有效

iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限

iOS 启动器图像和 Cordova Splashscreen 可以使用不同的图片吗?

确定 Cordova 无法在 iOs 9 中启动但在 iOs 10 中正常工作的原因

iOS / Cordova 应用程序启动画面在加载后移动

iOS cordova应用程序在启动屏幕后挂起