0

UIWebViewオフラインで作業したい。私が最初にURLにアクセスしたとき、以下のコードを実行してwebViewDidFinishLoadメソッドのドキュメントディレクトリにデータを保存しました。

NSCachedURLResponse* response = [[NSURLCache sharedURLCache]                                     cachedResponseForRequest:[webview request]];
NSData * data = [response data];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSString *filePath = [NSString stringWithFormat:@“%@temp”, basePath];
if (response)
{
    BOOL isSaveFile = [NSKeyedArchiver archiveRootObject:data toFile:filePath];
}

2回目に開くと、webviewそのファイルが存在するかどうかを確認します。私はローカルからファイルを開くために以下のコードを実行したファイルが存在することを取得します。

NSData * sData = (NSData *)[NSData dataWithContentsOfFile:filePath];
if (sData.length)
{
[webview loadData: sData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
}

上記のコードが正しく機能せず、以下の出力が得られます。

ここに画像の説明を入力

私を案内してください。私は何を間違っていますか??

4

1 に答える 1

2

生データをレンダリングする方法がわからないMIMETypeため、適切に設定する必要があります。UIWebView

NSCachedURLResponse* response = [[NSURLCache sharedURLCache] cachedResponseForRequest:[webview request]];
NSString *MIMEType = response.response.MIMEType;
NSData * data = [response data];

次にロード

[webview loadData: sData MIMEType:MIMEType textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
于 2014-04-11T09:27:16.333 に答える