如何在本地HTML中显示保存在Documents Directory中的图像? iOS版

时间:2015-04-17 22:27:12

标签: html ios objective-c applescript-objc

我有这个应用程序需要在本地存储webview中显示的图像,并在同一webview中再次显示这些存储的图像。

这是我到目前为止所得到的......

    // After download button clicked... Store image from URL locally
    NSURL  *url = [NSURL URLWithString:myURL];
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    if ( urlData )
    {
        NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString  *documentsDirectory = [paths objectAtIndex:0];

        NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.png"];
        [urlData writeToFile:filePath atomically:YES];
    }

    // Get image path from Documents Directory
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"filename.png"];

    // Display local html page                 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"revistasPhotoswipe" ofType:@"html" inDirectory:@"www"]];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:requestObj];

在html文件中只有一个标签来显示图像

   <html>
   <head></head>
   <body><img src='filename.png' /></body>
   </html>

使用App Bundle和HTML文件传递Documents Dir的正确方法是什么?另一种方法?

1 个答案:

答案 0 :(得分:0)

您无法使用<body><img src='filename.png' /></body>,因为它引用了本地服务器上不存在的对象。你有几个选择:

<强> 1。的Javascript

页面加载后的几毫秒,您应该告诉您的网页视图评估一个javascript函数。document["pictureIdFromProgam"].src = searchPic.src;以及使用<img src='throw.imgNotSet' id='pictureIdFromProgam'/>声明您的图片元素

<强> 2。 String Manipulatoin

另一个(不太理想,但更快)选项是将您的HTML文件编码为NSString并使用替换或%@ s插入img链接

插入:

[NSString stringWithFormat:@"<html><blah blah blah/><img src=%@/>",imagePathAsString];

然后您就可以告诉您的webview加载包含更新的Web内容的nsstring。