画像とデータが埋め込まれたHTML文字列を解析するアプリケーションを作成しています。SDWebImageを使用して、後で使用するために画像部分をキャッシュすることができ、完全にキャッシュされています。ただし、html文字列のsrcの代わりに、キャッシュされた画像(UIImage)を使用する必要があります。これはいくつかのjavascriptコードで実行できると思いますが、javascriptとcssに関しては私は完全に苦手です。誰かが私に画像srcをこのUIImageに変更するためのJavaScriptコードを教えてもらえますか?
画像をキャッシュするコード:
-(NSString *)fetchImageUrlFromSummary:(NSString *)summaryData
{
NSError *error = nil;
NSString *urlString = [NSString string];
HTMLParser *parser = [[HTMLParser alloc]initWithString:summaryData error:&error];
if (error) {
NSLog(@"%@", error);
return nil;
}
HTMLNode *bodyNode = [parser body];
NSArray *inputNodes = [bodyNode findChildTags:@"img"];
for (HTMLNode *inputNode in inputNodes) {
//NSLog(@"%@", [inputNode getAttributeNamed:@"src"]);
if ([[inputNode getAttributeNamed:@"src"]hasSuffix:@"png"] ||
[[inputNode getAttributeNamed:@"src"]hasSuffix:@"jpg"]||
[[inputNode getAttributeNamed:@"src"]hasSuffix:@"jpeg"]) {
urlString = [inputNode getAttributeNamed:@"src"];
[SDWebImagePrefetcher.sharedImagePrefetcher prefetchURLs:[NSArray arrayWithObject:urlString]];
}
}
return urlString;
}
uiwebviewで要約文字列を設定するコード:
NSString *summaryString = [[NSString alloc]initWithData:[_htmlData summary] encoding:NSUTF8StringEncoding];
NSString *myDescriptionHTML = [NSString stringWithFormat:@"<html><head><style type=\"text/css\"> div{text-align:justify;text-justify:inter-word;margin:auto}
img {max-width:100%%;width:auto;height:auto;}body{font-family: Verdana;font-size: 12pt;max-width: 100%%; width:auto; height:auto;}
<body bgcolor=\"#F5F5DC\"></style><body>%@</body></html>", summaryString];
[_webView loadHTMLString:myDescriptionHTML baseURL:[NSURL URLWithString:[_htmlData originUrl]]];