当你在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运行良好。
答案 0 :(得分:0)
我在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