iOS不会正确杀死app - Ionic

时间:2018-05-29 15:57:16

标签: ios ionic-framework ionic3

当你在iOS中在后台运行应用程序大约3个小时或更长时间时,它不会正确杀死应用程序,这会导致index.html在safari开发控制台中显示为空白。

  

engine name =“ios”spec =“4.4.0”

离子信息

ionic -version 3.20.0
ionic info
cli packages: (C:\Users\Usuario Interax\AppData\Roaming\npm\node_modules)
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0
local packages:
@ionic/app-scripts : 3.1.6
Ionic Framework    : ionic-angular 3.9.2
System:
Node : v6.11.5
npm  : 5.6.0
OS   : Windows 10
Misc:
backend : pro

我在控制台中找到了这个打印件:

  

异常nativeEvalAndFetch:ReferenceError:找不到变量:cordova   全局代码:空白1:127   全局代码脚本元素1:1:127

应用程序在启动画面中停止,不要转到主屏幕。

更彻底地搜索发现了这个:

exception nativeEvalAndFetch : ReferenceError: Can't find variable: cordova
try {
cordova.require('cordova/exec').nativeEvalAndFetch(function() {
    cordova.fireDocumentEvent('active');
})
} catch (e) {
console.log('exception nativeEvalAndFetch : ' + e);
};

这个bug只发生在iOS上,Android运行良好。

2 个答案:

答案 0 :(得分:0)

张贴这篇文章:https://www.outsystems.com/forums/discussion/35329/post-ios-11-3-mobile-app-freeze-crash-on-resume-after-sleep-silk-ui/

我在iOS版本10.3.3中测试了它并且应用程序的功能是正确的,因此新版本11.3和11.4中都有错误。

答案 1 :(得分:0)

此问题已在cordova-ios存储库中的pullrequest中得到解决(请参见https://github.com/apache/cordova-ios/pull/363/files 38)。但是,此PR尚不存在更新。因此,我决定下载固定文件,并在添加ios平台后,自行替换了旧的CDVViewController.m。对我而言,此方法有效,并且> 2000用户不再遇到此问题。

旧文件的路径是platform / ios / CordovaLib / Classes / Public / CDVViewController.m。

请记住,每次删除/添加平台后都要替换此文件。为此,我使用了一个Shellscript来构建我的工作目录,然后再进行构建。

我希望这会对您有所帮助。

感谢Mike1707提供解决方法,论坛回复https://forum.ionicframework.com/t/problem-with-ios-in-the-background-after-time/131592/6