iosWKWebView截图

本文得从业务需要说起;

最近一个研发需求需要,由于想要便捷开发,不用在服务端跟着客户端一起接受苹果审核的煎熬,决定把部分业务(主要是报表)放置在服务端开发,前端只需要搭载一个入口即可;最开始果断采用了UIWebView做Web部分的容器,(可能有其他更好的方案,暂时没有想到),然而一个事实是 UIWebView本身就有BUG,关于UIWebView内存占用很大而且泄露问题参考这几个博客包括Stack Overflow的大牛们都有说明

http://blog.csdn.net/cjsen/article/details/7449561

http://my.oschina.net/are1OfBlog/blog/387695

上述提到的解决方案其实都是不可以解决,亲测不可以;该篇说的最清楚http://www.jianshu.com/p/9bc5a74baebf(感谢该篇博主)没有让我再试图解决UIWebView的内存上浪费精力;考虑到ios7的占有率,用WKWebView不失为一种折中的解决方案;所以采用了该篇提供解决方案,也就是重写一个WebView 根据系统版本去判定到底是UIWebView还是WKWebView,内存泄露问题就只在于ios8以下了,算是一个较为折中的方案;然而业务需要报表能在各种主流社交平台快速传播,截整个报表这个事在WKWebView上就那么不友好了;

UIWebView的截图相当简单,为了截全貌,只需要把它全部展示出来,即把UIWebView.size变成UIWebView.scrollview.contentSize,如果有滚动发生,再把UIWebView.scrollview.contentOffset设置为(0,0)再在合适的时机把他们还原回来;主要的截图代码通过上layer渲染和下文截图

你可能感兴趣的:(ios开发)