如何从HTML加载图像img src从本地文件加载它
问题描述:
我有HTML代码。我想从它预先加载图像并保存在本地文件中。我将HTML转换为NSAttributedString并在UITextView中显示该字符串。如何从HTML加载图像img src从本地文件加载它
NSAttributedString *htmlAttributedText =
[[NSAttributedString alloc] initWithData:[htmlText dataUsingEncoding:NSUTF16StringEncoding]
options:@{ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType }
documentAttributes:nil
error:&err];
textView.attributedText = htmlAttributedText;
如何从本地文件加载图像而不是从网络加载?
答
下面的代码将列出HTML中的图像数组。获取所有图像的列表
NSMutableArray * arrayToStoreImages = [[NSMutableArray alloc] init];
NSRegularExpression* imageRegex = [[NSRegularExpression alloc] initWithPattern:@"<img[^>]*>" options:0 error:NULL] ;
[imageRegex enumerateMatchesInString:HTMLBODY options:0 range:NSMakeRange(0, [HTMLBODY length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
[arrayToStoreImages
addObject:NSStringFromRange(match.range)];
}];
使用SDWebImage下载所有图像并使用获取的URL中的HASH将其存储到本地存储中。 将实际URL替换为本地Hashed路径。 将HTML转换为NSAttributedString,并从本地存储中删除图像,因为它是临时的。
如果图像被SDWebImage缓存,它将从缓存中传递,否则它将下载新的图像。
我认为问题在于:当我尝试从html获取NSAttributedString时,图像将以某种本地方式加载,而我不知道如何强制解析器从磁盘缓存中获取图像 – rostislawk 2015-04-01 13:07:51