0

我的 iPhone 应用程序有一个信息页面,其中包含一个 UIWebView,我已将其指向我网站的信息页面:

NSString *urlAddress = @"http://www.toneme.org/Software";
NSURL *url = [NSURL URLWithString: urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL: url];

[self.webView loadRequest:requestObj];

但是,每次用户加载应用程序时,他们都会看到一个空白屏幕,直到它获取数据。情况不妙。

显示最后加载的页面会好得多,同时尝试在后台获取新版本。但我看不出如何干净地做到这一点。有人可以让我开始吗?

第二个问题:对于 iPhone 来说,在 UIWebView 中显示这个网页是不切实际的,因为网页包含三个窗格;整个事情就是不适合。我真的很想从页面中提取文本。有什么干净的方法可以做到这一点吗?我可以指定我只想下载主体吗?

我猜整个页面会作为单个字符串返回,所以如果我在文本周围放置几个自制标签,这将简化手动提取文本......

4

3 回答 3

1

提供一个 HTTP API,它以您可以解析的某种格式(即 JSON、XML)提供文本,这将允许您下载该数据,将其存储在本地(稍后将详细介绍),并从下载的数据中构建一个视图数据显示漂亮漂亮。:)

关于存储数据,请考虑编写一个将数据保存到应用程序的 Documents 目录的类,并处理查看服务器 http 标头信息,以查看文件是否需要重新下载,或者是否已经完成日期(理想情况下,这可以使用 etags 完成,但如果您的基础设施不支持 etags,则使用最后修改日期)。

于 2010-11-22T00:59:37.007 回答
1

因为自己做这件事肯定是可能的,但是要做好相当多的工作,你可能想检查 AsiHTTPRequest 尤其是 ASIWebPageRequest

高温高压

于 2010-11-22T01:06:24.323 回答
0

您应该能够将 UIWebView 内容和 URL 数据保存到文件中,以便在委托 webViewDidFinishLoad 方法中使用

NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];
于 2010-11-22T03:00:40.047 回答