我想截屏,然后向 webview 发送它的本地路径,所以它会显示它。我知道 webview 可以从 NSBundle 获取图像,但是这个屏幕截图是动态创建的——我可以通过代码添加一些东西吗?
我是这样尝试的:
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:// 前缀。解决方案是什么?谢谢你的帮助。
编辑:在代码中添加了一个缺失的行
解决方案:我使用了 Cyrille 的建议和这个库进行编码:http ://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html