iphone uiwebview下载包含CSS和图像的完整页面

时间:2009-11-12 07:31:18

标签: iphone download uiwebview webpage complete

在我的应用程序中有一个加载网址的uiwebview。 我使用以下行来保存本地加载的页面的HTML,以便能够脱机查看。

NSString* html=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]

问题只是保存的文档的HTML,我想保存图像和CSS以及HTML,以便用户看到页面就像他在线一样。

就像“保存网页完成”或类似的内容,我们曾经在浏览器中使用过。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

没有简单的方法。使用RegexKitLite(http://regexkit.sourceforge.net/RegexKitLite/index.html)对HTML进行正则表达式,并将所有URL添加到.jpg,.gif,.png,.css和.js以及其他所有需要的内容。

或者,请致电:

NSString* imgUrls=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('img')"]

或类似的东西,我不是javascript高手......然后处理所有返回的东西;)

对不起。这对后方来说是一种痛苦。

编辑:

将所有img保存在iphone上,同时保存html文件。如果要重新加载页面,请将文件中的html加载到字符串中,然后使用

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

加载HTML字符串。 baseURL用于指定webview将设想的html字符串所在的目录或站点。所有URL都与此相关。

注意,当然,对于绝对URL,这不会很好,仅适用于相对URL。所以,在你的html文件中,这会让事情变得更糟糕:

<img src="http://google.com/f/r/i/g/img.gif">

虽然这样可以:

<img src="f/r/i/g/img.gif">

同样,整个解决方案都很糟糕。 您可能会查看预先存在的开源递归html蜘蛛。我认为wget会做你想要的,但我怀疑它可以在没有麻烦的情况下为iPhone编译。

答案 1 :(得分:0)

我没时间检查,但ASIWebPageRequest接缝很有前途。它声明它可以“将完整的网页存储在单个字符串中,或​​者将每个外部资源存储在从页面引用的单独文件中”

ASIWebPageRequest 1

我将在我的一个项目中使用它,然后更新线程。

Gonso