1

ユーザーがネットワークに接続したときにWebページを読み込み、オフラインで保存したい(画像/リソースを含む)。ユーザーがネットワークに接続していない場合は、以前に保存した Web ページを読み込む必要があります。私は試してみNSData dataWithContentsOfURL:(NSURL *)urlましNSString stringWithContentsOfURLたが、これらはリソースではなくhtmlコンテンツのみを保存します。前もって感謝します。

4

4 に答える 4

2

ASIHttpRequestでそれを行うことができます。そのプロジェクトを使用したくない (アクティブでなくなった) 場合は、コードとその機能を調べることができます。詳細については、「 iOS で画像を含む Web ページ全体をキャッシュする方法」も参照してください。

于 2012-05-08T14:01:56.620 に答える
0

以下を使用して、このデータをファイルに書き込みます。

-(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];
}

そして次回ロードします。

于 2012-05-08T11:51:28.530 に答える
0

簡単な解決策はこれだと思います-「Safariクライアント側ストレージおよびオフラインアプリケーションプログラミングガイド」、https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.html

HTML5 と webview を使用してアプリを作成している場合にのみ、このメソッドをまだテストしていないため、機能する可能性があります。

于 2012-05-08T11:58:08.903 に答える
0

のような 1 行のソリューションがあるかどうかはわかりませmyWebView.cache4Offline = YES;んが、ウェブサイトのコードにアクセスできない限り (つまり、アプリ内でウェブサイトをオフラインで利用できるようにしたい場合)、次のようにする必要がありますこれを自分でプログラムします。考えてみれば、それほど難しいことではないように思えます。

  1. 画像 URL の html 文字列をスキャンします (および必要なその他すべて)
  2. を使用してインターネットからこれらのリソースをダウンロードしますNSData dataWithContentsOfURL(相対/絶対 URL のため、少し面倒かもしれません)。
  3. NSData writeToFile:options:error: でデータをファイルに保存します。
  4. HTML の URL を 3 の filePath に置き換えます (または、ファイル URL の URL を変換するための規則を使用することをお勧めます)

それが役に立てば幸い

于 2012-05-08T12:38:58.777 に答える