如何防止在运行Cordova插件时关闭WKWebView

时间:2015-12-22 11:08:09

标签: ios html5 cordova cordova-plugins wkwebview

我正在使用cordova-plugin-wkwebview-engine插件在Cordova中运行我的html5应用程序。由于WKWebView架构,webview被加载到另一个线程中。现在,当我从Cordova打开另一个线程(EG。使用相机插件拍照)并且iOS在相机视图处于活动状态时发出内存警告时,webview被杀死。

显然WKWebView视图像后台线程一样被处理并被停止。现在,当相机返回时,应用程序为空白(白色屏幕),因为webview不再存在。在UIWebView(由于WKWebView中的更好性能而放弃)在应用程序的主线程上运行,因此永远不会被杀死。

有什么方法可以阻止WKWebView被关闭吗?如果应用程序无法保持主应用程序运行WKWebView对于显示网页叠加层以外的任何内容都是无用的。

1 个答案:

答案 0 :(得分:3)

对于WKWebView的内存管理,看起来还有很多问题,以及一些可能对解决问题有用的iOS 9安全更改。

HERE是Apple支持人员的原因,为什么您的WKWebView返回空白,而不是仅仅崩溃您的应用程序:

  

虽然可能WKWebView进程可能超出其内存预算,但这样做不会导致您的应用程序被终止,并且最多会导致空白视图。

此外,THIS问题揭示了导致类似问题的NSAppTransportSecurity Protocol(iOS 9更改)。虽然它与内存无关,但如果您在WKWebView实例中使用非安全URL,则可能值得一试。

如果您在任一请求期间使用 HTTP 网址,则必须包含以下内容:

<key>NSAppTransportSecurity</key>  
<dict> 
   <key>NSAllowsArbitraryLoads</key><true/>  
</dict> 

在您的应用程序的.plist文件中。

如果您仍然无法解决问题,我建议您查看WKWebView,的铬forum,同时可能会降低质量参数相机插件可以减少内存问题。