ユーザーが初めて UIWebView にアクセスする場合でもオフラインで動作するように、HTML5 オフライン appcache が事前設定された UIWebView を作成することは可能ですか?
もしそうなら、どのように?
他のメカニズムでこれを達成できることはわかっていますが、上記が私の最初の選択です。そして、それが可能かどうかは単純に興味があります。
私はドキュメントでそれについて何も見ていません。
ユーザーが初めて UIWebView にアクセスする場合でもオフラインで動作するように、HTML5 オフライン appcache が事前設定された UIWebView を作成することは可能ですか?
もしそうなら、どのように?
他のメカニズムでこれを達成できることはわかっていますが、上記が私の最初の選択です。そして、それが可能かどうかは単純に興味があります。
私はドキュメントでそれについて何も見ていません。
探しているのは、キャッシュ フォルダー内の 2 つのファイルです。
ApplicationCache.dbおよびcache.db
どちらもアプリケーションのLibrary/Caches/[your bundle identifier]フォルダーにあり、フル アクセスが可能です。あらかじめ入力されたキャッシュ データをバンドルに追加し、アプリの起動時にキャッシュ フォルダーにコピーするだけです。
ところで、それらは単純な SQLITE db であるため、簡単に操作できます。
これが役立つことを願っています
これは、プログラムで UIWebView のキャッシュ ファイルに書き込むことができるかどうか (つまり、UIWebView キャッシュがアプリのサンドボックス内に存在するかどうか) の問題に帰着する可能性があると思います。できない場合はゲーム オーバーです。できる場合は、事前に入力されたキャッシュ ファイルを所定の位置にドロップした後に何が起こるか、および UIWebView が "だまされて" HTML5 コンテンツが既にダウンロードされてキャッシュされていると考えるようになるかどうかが問題になります。
iPhone シミュレーターを使用してアプリをテストしている場合は、調べてください~/Library/Application Support/iPhone Simulator/5.0/Applications
(必要に応じて、「5.0」を iOS のバージョンに置き換えてください)。シミュレーターでコンパイルしたアプリごとに、16 進数の長い文字列が表示されます。アプリに対応するものを見つけて、Library/Caches/[your app's identifier]
サブフォルダーで という名前のファイルを探しますCache.db
。
これは、UIWebView がキャッシュ データを格納する場所である可能性があります。そうでない場合、ゲーム オーバーになり、あなたの質問に対する答えは「いいえ、それは不可能です」です。UIWebView がデータをキャッシュする場所である場合は、このファイルをシミュレーターに入力し、ファイルを取得してアプリ バンドルに保存し、キャッシュに事前入力するときに適切な場所にキャッシュを書き込むことができる場合Cache.db
があります。 .
とにかく、それが可能かどうかを判断するために使用する攻撃のラインです。UIWebView キャッシュがアプリのサンドボックスに存在しないことが判明しない限り、答えは「いいえ、不可能です」になると確信しています。あなたが書き込み可能であり、キャッシュファイルを置き換えることで UIWebView をだますことができます。
強制読み込みの意味は次のとおりです。Web ページにアクセスすると、次回の読み込みを高速化するために要素がキャッシュされます。キャッシュの強制読み込みまたはウォームアップとは、バックグラウンドで uiwebview にリクエストを実際に発行して、読み込みを高速化するためにデータをキャッシュに読み込み、ユーザーが実際にクリックするとキャッシュに情報が含まれるようにすることです。
クロムを使用する場合、それは彼らがサーフィンを少し速くするために使用する戦略に似ています: ページが読み込まれると、ページ上のすべてのリンクをすぐに見つけてリンクを解決するので、ユーザーがリンクをクリックしても、ページが表示される前に、DNS サーバーからの応答を待つ必要があります。
これがもう少し理にかなっていることを願っています。
見積もり:
これはかなりクールな質問です。開発者リファレンスで提供されているものだけを確認することを検討してください。そうでない場合、Apple はアプリを拒否します。非表示のビューでキャッシュをウォームアップするために必要なものは何でも「強制読み込み」することを検討できます。このようにして、要素をキャッシュに追加する機能がありますが、内部キャッシュアルゴリズムを知らない限り、キャッシュからアイテムを削除する権限はありません...これはハックではなく、それ以上のものだと思いますテクニックの!– vinnybad 11 月 23 日 17:26
@vinnybad: 「強制読み込み」の意味がよくわかりません。それについて詳しく説明していただけますか?(コメントではなく回答を入れる価値があるようですね!) – Trott 11 月 23 日 17:40