2012-05-08 9 views
1

ユーザがネットワークに接続してオフラインで保存したときにウェブページを読み込みたい(画像/リソースを含む)。ユーザーがネットワークに接続していない場合は、以前に保存したWebページを読み込む必要があります。私はNSData dataWithContentsOfURL:(NSURL *)urlNSString stringWithContentsOfURLを試しましたが、これらはリソースではなくHTMLコンテンツのみを格納します。 ありがとうございます。あなたはアプリでを作っている場合のみ、「Safariのクライアント側のストレージとオフライン・アプリケーション・プログラミング・ガイド」、http://developer.apple.com/library/safari/#documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.htmliphoneでウェブページ全体をキャッシュする方法は?

-

答えて

0
write this data into file using 

-(void)writeDataToFile:(NSString*)filename 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    if(filename==nil) 
    { 
     DLog(@"FILE NAME IS NIL"); 
     return; 
    } 
    // the path to write file 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat: @"%@",filename]]; 
    /*NSData *writeData; 
    writeData=[NSKeyedArchiver archivedDataWithRootObject:pArray]; */ 
    NSFileManager *fm=[NSFileManager defaultManager]; 
    if(!filePath) 
    { 
     //DLog(@"File %@ doesn't exist, so we create it", filePath); 
     [fm createFileAtPath:filePath contents:self.mRespData attributes:nil]; 
    } 
    else 
    { 
     //DLog(@"file exists"); 
     [self.mRespData writeToFile:filePath atomically:YES]; 
    } 

    NSMutableData *resData = [[NSMutableData alloc] init]; 
    self.mRespData=resData; 
    [resData release]; 
} 

+0

私はこれが質問に答えるとは思わない。データを保存する方法ではなく、ウェブサイトのすべてをダウンロードして保存する方法に関するものです。 –

+0

どのデータを保存したいですか? – Saad

+0

私はデータを保存したくないのですが、質問者はそう思っています。質問は - 私が理解したように - どのオフサイトの使用のために*どの*ウェブサイトの*すべての*を保存するかです。 –

0

は、私は簡単な解決策は、このだと思う次回それを読み込みますHTML5とwebviewはまだこのメソッドをテストしていないので、動作する可能性があります。

+0

これはウェブ開発者の場合はオフラインストレージですが、オフラインで使用する*ウェブサイトをどのように保存するかが問題です。 –

+0

ありがとうございます、あなたは正しいです、私たちがwebviewとHTML5でアプリを作っている場合にのみ、HTML5はこの仕事をすることができます。 – Tom

0

myWebView.cache4Offline = YES;のような1行ソリューションがあれば、私は知りませんが、私はあなたが任意のウェブサイトをオフラインで使用できる内部を作りたい場合は、すなわちウェブサイトのコードにアクセスする(持っていない限り、恐れますあなたのアプリ)、これを自分でプログラムする必要があります。それについて考える、それはとても難しく思えません:

  1. は(あなたが必要と他のすべて)画像URLのHTML文字列をスキャンし
  2. NSData dataWithContentsOfURLを使用して、インターネットからそれらのリソースをダウンロードします(多分少し迷惑な、なぜなら相対/絶対URLの)NSDataのWRITETOFILEのファイルに
  3. 保存データ:オプション:エラー:
  4. 3.(OR、より良いあなたその URLを変換するための規則を使用からfilePathにとHTML内のURLを交換してくださいファイルURL)

は、それはあなたがASIHttpRequestでそれを行うことができ

+0

このソリューションは、filePathが.pngイメージではなくNSDataを指しているので、URLをhTMLのファイルパスに置き換える方法がないことを除いて、機能します。 –

2

に役立ちます願っています。そのプロジェクトを使用したくない場合(これはもはやアクティブではありません)、コードとその機能を調べることができます。詳細はthisをご覧ください。

関連する問題