cordovaiOS自定义插件:处理内存警告

我正在开发一个使用cordova(2.1)的iOS应用程序,以及一些自定义插件。

我试图面对的问题如下:当我显示我的插件(基本上是一个相机插件比内置的cordova插件更多的function)有时我收到一个内存警告,并随之卸载包含webview的视图。 这对我来说是一个非常大的问题,因为一旦我的imagePicker被解雇,webview不会被恢复。

我看了一下CDVCamera的插件源,我注意到了这一点:

(1)插件保存webview:

// we need to capture this state for memory warnings that dealloc this object cameraPicker.webView = self.webView; 

在这里我不明白发生了什么,好的我们保存webview万一有内存警告它将被卸载,但我无法弄清楚如何/在框架中的webview恢复。

(2)插件使用一个名为hasPendingOperation的Bool属性,这个属性如果我理解的话,在接收到内存警告时被CDVViewController使用,以避免插件激活时清除内存。

我不明白的第一件事是以下为什么当我的控制器收到内存警告超级控制器(CDVViecontroller)没有收到它?

其次,是否可以将CDVCamera插件使用的模式与CDVViewController结合使用来处理自定义插件中的内存警告?

任何帮助pipe理与cordova的内存警告,以避免webview被卸载将不胜感激。

  1. 这可能是一个传统的使用,我们需要保持对webView的引用,以便在select器被解雇时将javascript写入它。 不是真的需要,因为我们正在使用不同的方式来回写到web视图: https : //github.com/apache/cordova-ios/blob/0a978a6617c58bfa98968e0c6bdcdb4f10f01902/CordovaLib/Classes/CDVCamera.m#L301

  2. 不知道你的意思,CDVViewController也收到内存警告,并查询每个插件的hasPendingOperation属性。 如果它被设置为true,那么插件不会被释放。 请注意,如果内存不足,iOS监视程序可能会终止应用程序。