我的iPhone应用程序有一个Info页面,其中包含一个UIWebView,我已在我的网站的信息页面上指出:
NSString *urlAddress = @"http://www.toneme.org/Software";
NSURL *url = [NSURL URLWithString: urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL: url];
[self.webView loadRequest:requestObj];
但是,每次用户加载应用时,他们都会获得一个空白屏幕,直到它获取数据。这个不好。
在尝试在后台获取新版本时,显示最后加载的页面会好得多。但我看不清楚如何干净利落地做到这一点。有人能让我开始吗?
第二个问题:对于iPhone来说,在UIWebView中显示这个网页是不切实际的,因为网页包含三个窗格;整件事情都不合适。我真的想从页面中提取文本。这样做有什么干净的方法吗?我可以指定我只想下载主体吗?
我猜测整个页面会以单个字符串的形式返回,所以如果我在文本周围添加几个自制标签,这样可以简化手动提取文本...
答案 0 :(得分:1)
提供一个HTTP API,它提供您可以解析的某种格式的文本(即JSON,XML),它允许您下载该数据,将其存储在本地(一秒钟内更多),并构建一个视图下载的数据显示漂亮和漂亮。 :)
关于存储数据,请查看编写一个类,该类将数据保存到您的应用程序的Documents目录,并处理查看服务器http头信息,以查看是否需要重新下载该文件,或者它是否已经是最新版本(理想情况下可以使用etags完成,但如果您的基础架构不支持etags,则可以使用最后修改日期)。
答案 1 :(得分:1)
自己做这件事肯定是可能的,但要做出正确的努力, 您可能想要检查AsiHTTPRequest,尤其是 ASIWebPageRequest
HTH
答案 2 :(得分:0)
您应该能够将UIWebView内容和URL数据保存到文件中,以便在委托webViewDidFinishLoad方法中重用
NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];