【问题标题】:iPhone UIWebview -- Saving an image already downloadediPhone UIWebview -- 保存已下载的图像
【发布时间】:2009-02-09 22:07:53
【问题描述】:

我有一个带有嵌入式 UIWebview (Safari) 控件的 iPhone 应用程序。我希望能够在本地存储来自某些网页的图像。

我能否以编程方式访问 UIWebview 下载图像的路径?还是我需要先解析HTML然后再去网上找图片资源重新下载?

【问题讨论】:

    标签: iphone uiwebview


    【解决方案1】:

    我不知道你是否可以从 Safari 的缓存中访问预加载的图像...

    不过,您无需解析 HTML 即可轻松找到图片 URL,只需运行一些 javascript:

    NSString *script = @"var n = document.images.length; var names = [];"
                        "for (var i = 0; i < n; i++) {"
                        "     names.push(document.images[i].src);"
                        "} String(names);";
    NSString *urls = [webView stringByEvaluatingJavaScriptFromString:script];
    // urls contains a comma-separated list of the image URLs.
    

    【讨论】:

    • 你只需要添加 NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.url.com/image.jpeg"]]; UIImage *theImage = [UIImage imageWithData:imageData]; UIImageWriteToSavedPhotosAlbum(theImage, self, nil, nil);将图像保存到相册。
    • 这不是作者要求的解决方案。他不想在互联网上请求图像,因为它们已经加载到 webview 中。我对这个问题投了赞成票。
    【解决方案2】:

    我认为您不能直接使用 UIWebview 保存图像,您将不得不手动获取图像...

    【讨论】:

      【解决方案3】:

      免责声明:我没有尝试过。

      如果您能找到他们的名字,UIImage 会响应 +(UIImage*)imageNamed:(NSString*),文档暗示这可能会从设备范围的缓存中取回图像。

      我很想知道任何实验的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多