cordova(2.1) といくつかのカスタム プラグインを使用する iOS アプリを開発しています。
私が直面しようとしている問題は次のとおりです: プラグイン (基本的には、組み込みのコルドバ プラグインよりも多くの機能を備えたカメラ プラグイン) を表示すると、メモリ警告が表示され、その結果、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)がそれを受け取らないのはなぜですか?
次に、カスタム プラグインでメモリ警告を処理するために、CDVViewController と組み合わせて CDVCamera プラグインで使用されるパターンを適用することは可能ですか?
WebView がアンロードされるのを避けるために、cordova でメモリ警告を管理するのに役立ちます。