美文网首页iOS开发进阶
UIWebView 怎么优雅的加载图片

UIWebView 怎么优雅的加载图片

作者: 人魔七七 | 来源:发表于2017-10-16 16:36 被阅读231次

    先说运行场景

    第一种情况比如我本地有一个HTML我需要加载,但是图片在工程里面。

    第二种情况webView已经加载完成其实图片已经缓存到了本地,直接去沙盒读取缓存。

    第三种情况如果有类似新闻类的详情页图片比较多,我想把缓存逻辑放到本地来处理。比如完全可以用SDWebImage缓存图片,还可以做图片点击放大等交互操作。

    第一种关键代码:注意工程的图片资源在工程里面

    <img src="11.0_network_ permissionsStatus_icon.png"/>

    第二种关键代码:用到了一个第三方库从沙盒里面取图片RNCachingURLProtocol

    NSString *fileName = [RNCachingURLProtocol cachePathForURLString:imageUrl];

    RNCachedData *cache = [NSKeyedUnarchiver unarchiveObjectWithFile:fileName];

    UIImage *image = [UIImage imageWithData:cache.data];

    第三种关键代码:WebViewJavascriptBridge 用来H5和native交互的代码。JS把HTML所有图片url传过来缓存到本地,还可以做点击放大效果。

    self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.TXTWebView];

    [self.bridge setWebViewDelegate:self];

    [WebViewJavascriptBridge enableLogging];

    //获取webView所有图片的src

    [self.bridge callHandler:@"getImageUrlsArray" data:nil responseCallback:^(id responseData) {

    [self downloadAllImagesInNative:responseData[@"data"]];

    }];

    //webView图片被点击事件响应

    [self.bridge registerHandler:@"imageDidClicked" handler:^(id data, WVJBResponseCallback responseCallback) {

    }];

    相关文章

      网友评论

        本文标题:UIWebView 怎么优雅的加载图片

        本文链接:https://www.haomeiwen.com/subject/peckuxtx.html