繁体   English   中英

iOS-UIWebView加载位于tmp文件夹中的图像

[英]iOS - UIWebView loading an image located in the tmp folder

我在应用程序的临时文件夹中保存了一个图像文件,例如IMG.png。 我使用以下方法将HTML字符串注入UIWebView中:

    NSString *HTML = [NSString stringWithFormat:
                     @"<body><h2>%@</h2><img src=\"%@\"></img><p>%@</p>%@</body>",
                     title, image, body];

    [webView loadHTMLString:HTML baseURL:[NSURL URLWithString:HOST]];

我尝试了NSString image多种路径组合,但无法获得此WebView来正确加载本地图像。

你能帮我么?

这是我用来将图像保存在temp文件夹中的方法:

[self saveImage:result withFileName:post.title ofType:@"jpg" inDirectory:NSTemporaryDirectory()];

依赖于:

-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {

    if ([[extension lowercaseString] isEqualToString:@"png"]) {
        [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
    } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
        [UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
    } else {
        NSLog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
    }
}
     [webView loadHTMLString:HTML baseURL:[NSURL URLWithString:HOST]]; //the 'HOST' must be your application's temp folder

尝试使用NSURL组成文件URL:

NSURL *url = [NSURL fileURLWithPath:[[NSTemporaryDirectory() stringByAppendingPathComponent:@"filename"] stringByAppendingPathExtension:@"jpg"]];
NSString *image = [url absoluteString];

(假设您的图片文件名是“ filename.jpg”)

应导致类似以下内容:

file://localhost/private/var/mobile/Applications/E754629C-4163-4829-9D10-89D55A61264E/tmp/filename.jpg

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM