将本地图像加载到UIWebView中 [英] load local image into UIWebView
问题描述
我想截取屏幕截图,然后将其的本地路径发送到webview,因此它将显示它.我知道webview可以从NSBundle拍摄图像,但是此屏幕截图是动态创建的-我可以通过代码向其中添加一些内容吗?
I want to take a screenshot and then send to webview a local path for it, so it will show it. I know that webview could take images from NSBundle but this screenshots are created dynamically - can I add something to it by code?
我正在这样尝试:
UIGraphicsBeginImageContext( webView.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSString *file = @"myfile.png";
NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
NSString *path = [directory stringByAppendingPathComponent: file];
[UIImagePNGRepresentation(viewImage) writeToFile:path atomically:YES];
NSString *function = [NSString stringWithFormat:@"loadImagePlease(%@);",path];
[ ad stringByEvaluatingJavaScriptFromString:function];
但是loadImageFunction无法使用file:///或file://前缀访问它.有什么解决方案? 谢谢你的帮助.
But loadImageFunction can't access it , with file:/// or file:// prefix. What's the solution? Thanks for ANY help.
在代码中添加了缺少的行
added a missing line in code
解决方案:我使用了Cyrille的建议,并使用该库进行编码:
SOLUTION: I used a Cyrille's advice and this library for encoding : http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html
推荐答案
将其转换为 base64数据URI方案并按照您当前的操作通过Javascript发送:
Convert it to a base64 data URI scheme and send that via Javascript as you're currently doing :
someDOMelement.src = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==)';
someDOMelement.src = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==)';
这篇关于将本地图像加载到UIWebView中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!