UIWebViewクラスを使用すると、アプリがバックグラウンドになったときにブラウジングセッションを保存し、アプリがアクティブ化または再起動したときに完全に復元することができますか?ドキュメントによると、UIWebViewクラスはNSCodingプロトコルに準拠していますが、UIWebViewクラスのインスタンスをアーカイブすると、ページのCookieとJavaScriptの状態(およびHTML5ローカルストレージも)が保持されるため、ページはまったく同じように復元されます。見た目も機能もまったく同じですか?私のアプリは、セルラー上で非常に長い間読み込まれる、重くて散在するグラフィックスとJavaScriptを含むページを表示するため、ブラウジングセッションを保存することは、非常に優れた改善です。
1440 次
1 に答える
1
おそらくそうではありません。Safariでさえこれを行いません。
すべてのUIViewクラスは、nibファイルからのアーカイブ解除をサポートし、ユーザーインターフェイスを設定するために、NSCodingに準拠しています。これは特殊なケースであり、他のクラスに存在する汎用のアーカイブ/アーカイブ解除メカニズムではありません。
おそらくあなたができることがいくつかあります:
- スクロール位置を保存して復元します。
- データを積極的にキャッシュします。URLローディングシステムのドキュメントを見てください。これはUIWebViewが使用するものです。デフォルトである程度のキャッシュを実行しますが、さらに多くのことを実行するように調整できると思います。
- 通常は破棄されるセッションCookieを保存および復元します(HTTPCookieStorageを参照)。
于 2012-10-04T05:23:25.873 に答える