2015-09-17 2 views
4

В моем приложении есть UIWebView. На загруженной веб-странице в нем есть некоторые изображения, и я хотел бы использовать эти изображения в другом месте (например, отображать их в UIImageView)Загрузите изображения из UIWebView

Так можно получить загруженные изображения непосредственно с UIWebView, не загружая их снова? Теперь я получаю URL-адреса изображений из файла html и загружаю их, но это слишком трудоемко.

ответ

0

Я понял это: ключ заключается в извлечении изображений из 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]; 
    .... 
} 

Если вы уже не имеете его, вы можете получить массив изображений из 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:@","]; 
Смежные вопросы