ios - NSData 未在 UIWebView lodadata 方法中正确加载

标签 ios nsdata nsurl loaddata uiweb

我希望 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];
}

当我第二次打开 webview 时,我将检查该文件是否存在。我得到了文件存在我已经完成了下面的代码来从本地打开文件。

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

上面的代码不能正常工作,我得到下面的输出。

enter image description here

请指导我。我做错了什么??

最佳答案

您应该设置正确的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:@""]];

关于ios - NSData 未在 UIWebView lodadata 方法中正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007656/

相关文章:

ios - 从 URL 转换图像返回 NSURLConnection 已完成,错误代码 -1022

ios - IBAction UIButton 触发延迟

ios - 标记不在 subview IOS SWIFT 的谷歌地图中

ios - 在 ios 中上传或下载图像的最佳方式。 FTP 与 HTTP

ios - 在 Core Data 中保存和检索自定义对象

iphone - 如何使用 UIWebview 加载本地 .html 文件?

ios - NSURLComponents 在添加新查询项时将 %2B 更改为 +

objective-c - NSURLRequest 返回 null

ios - 如何在 iOS 中缓存 NSDATA json

ios - 使用自定义单元格/自定义背景图像对 UITableView 进行分组