从UIWebView获取加载的图像

时间:2015-09-17 06:48:23

标签: ios objective-c swift uiwebview uiimage

在我的应用中有一个UIWebView。其中加载的网页有一些图片,我想在其他地方使用这些图片(例如在UIImageView中显示)

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

1 个答案:

答案 0 :(得分:1)

我已经想到了这一点:关键是从NSURLCache中提取图像。但是,从iOS 8开始,您似乎需要将默认缓存设置为application:didFinishLaunchingWithOptions:中的第一个工作。例如:

application: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];
    ....
}

如果您还没有,可以使用<{p}}获取一系列图片

UIWebView