ios – 从UIWebView获取加载的图像

在我的应用程序中有一个UIWebView.其中加载的网页有一些图像,我想在其他地方使用这些图像(例如在UI
ImageView中显示它们)

那么是否可以直接从UIWebView获取加载的图像而无需再次下载它们?我现在正在做的是从html文件获取图像的URL并下载它们,但这太费时间了.

最佳答案 我已经想到了这一点:关键是从NSURLCache中提取图像.但是,从iOS 8开始,您似乎需要将默认缓存设置为应用程序中的第一件事:didFinishLaunchingWithOptions:为此工作.例如:

在应用程序中:didFinishLaunchingWithOptions:

[NSURLCache setSharedURLCache:[[NSURLCache alloc]
    initWithMemoryCapacity:32*1024*1024 diskCapacity:64*1024*1024 diskPath:...]

然后在UIWebView完成加载后:

NSCachedURLResponse * response = [[NSURLCache sharedURLCache]
    cachedResponseForRequest:[NSURLRequest requestWithURL:
        [NSURL URLWithString:@"http://.../image.png"]]];
if (response.data)
{
    UIImage * nativeImage = [UIImage imageWithData:response.data];
    ....
}

如果您还没有它,可以从UIWebView获取一系列图像

NSArray * images = [[webView stringByEvaluatingJavaScriptFromString:
    @"var imgs = []; for (var i = 0; i < document.images.length; i++) "
        "imgs.push(document.images[i].src); imgs.toString();"]
    componentsSeparatedByString:@","];
点赞