2011-06-25 3 views
2

オフラインアクセス用の画像と共に、サーバー上のHTMLページの全内容を表示/キャッシュできるスマートUIWebView(または同様のコンポーネント)が必要です。インターネットが利用可能になるとすぐに、ライブバージョンが読み込まれます。オフラインでアクセスできるUIWebView

このアプリはメンバープロフィールを持つメンバーシップディレクトリです。メインのインデックスと各メンバーのページがあります。

あなたは私にこのようなものを開発する方法について正しい道を案内できますか?または既存の図書館を私に指摘してください。

私は新しいiOS開発にご協力いただきありがとうございます。私は考えることができる

+0

はあなたを持っていますあなたがオンラインでライブコンテンツを正常に読み込んでいるところまで来たのですか? – bshirley

+0

@bshirleyはいUIWebViewを使用してライブWebページを読み込むことができます – Josh

答えて

1

二つの経路:

  • ラップのUIWebView、いずれかのサブクラスまたはカテゴリで、ロードロジックをカプセル化する
    1. ネットワークがオンラインの場合、直接URLをロードして使用してそれをキャッシュしますNSCacheにURL文字列をキーとして入力します。 NSURLConnectionまたはEGOHTTPRequestのようなものは簡単に読み込みを行います。
    2. ネットワークがオフラインの場合は、データがキャッシュに存在するかどうかを確認します。その場合は、-loadData:メソッドを使用してコンテンツをキャッシュから取り出し、WebViewでレンダリングします。存在しない場合は、エラーを表示してください。
  • ASIHTTPRequestのようなキャッシングHTTPライブラリを使用してデータをロードしてください。内部でロードしたデータをキャッシュし、ネットワークがオフラインの場合には後続の要求でキャッシュされた結果を提供することができます。

ASIHTTPRequestは非常によく見えますが、非常に低いレベルの構造(CFNetwork)に基づいて完全に再実装されたURLローディングシステムです。だからアップルは高レベルのライブラリ(NSURLConnection、NSCache)を改良しているので、ASIHTTPはこれらの進歩を得られません。また、コードの多くがFoundationにあるので、一般的に利用可能になったときにARCに移植するのはかなり大規模なプロジェクトになります。 fileURLWithPath

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] isDirectory:NO]]]; 
0

あなたはASIWebPageRequestを見てする必要がありますようにあなたがオフラインでページ全体をキャッシュすることができますされ、思わ:

http://allseeing-i.com/ASIHTTPRequest/ASIWebPageRequest

+0

images、css、jsファイルはどうですか?それはhtmlページだけをキャッシュするメソッドですか? – Josh

+0

このコードはUIWebViewにローカルHTMLファイルのみを表示してキャッシュするため、初めてアプリケーションを接続するときにSQLiteを使用してデータを保存することができます。 –

0

を使用するのUIWebView上のローカルファイルをロードするために

関連する問題