我已经下载了几张图片,我需要查看它们并从UIWebView中打印它们,但我似乎无法获得正确的路径以使图像显示在UIWebView中。
有人成功完成了这项工作吗?
我的图片下载到路径Documents / MyFolder / MyImage.jpg
答案 0 :(得分:0)
简单:只需将要显示的html复制到文档目录并使用相对文件路径。
我刚试过这个并且它有效。首先将资产复制到用户文档目录中。这里只以一个图像为例。您可以复制整个目录等。
NSURL *documentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *imageURL = [documentsDirectory URLByAppendingPathComponent:@"image.gif"];
if (![[NSFileManager defaultManager] fileExistsAtPath:[imageURL path]]) {
NSString *bundleImage = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"gif"];
if (bundleImage) {
[[NSFileManager defaultManager] copyItemAtPath:bundleImage toPath:[imageURL path] error:nil];
}
}
同时复制你的html页面(这只是显示我如何设置测试):
NSString *htmlString = @"<html>Here is a picture: <br>"
"<img src=\"image.gif\" height=100 width=100> "
"</html>";
NSURL *mainPageURL = [documentsDirectory URLByAppendingPathComponent:@"index.html"];
NSLog(@"%@", mainPageURL);
[htmlString writeToURL:mainPageURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
最后加载页面 - 就像魅力一样。
[webView loadRequest:[NSURLRequest requestWithURL:mainPageURL]];
关于在 iOS模拟器中运行此操作的警告。 Mac上的URL不同。简而言之,您必须使用格式@"file:/.../"
并将所有斜杠/
替换为双斜杠//
,并将所有空格替换为%20
。有关详情,请参阅this问题。