0

我的iPhone應用程序有一個信息頁面,其中包含一個UIWebView,我已經指出,在我的網站的信息頁面:iPhone:從提取文本和檢索網頁的磁盤緩存

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

[self.webView loadRequest:requestObj]; 

然而,每一次用戶加載應用程序,他們將獲得一個空白屏幕的年齡,直到它獲取數據。不是很好。

顯示加載的最後一頁,同時試圖在後臺獲取新版本會好得多。但我看不出如何幹淨地做這件事。有人能讓我開始嗎?

第二個問題:對於iPhone而言,在UIWebView中顯示此網頁並不實際,因爲該網頁包含三個窗格;整個事情都不適合。我真的想從頁面中提取文本。有沒有乾淨的方式來做到這一點?我可以指定我只想下載主體嗎?

我猜整個頁面獲取返回一個字符串,所以也許如果我適合一對夫婦自制的標籤在我的文字,這將簡化手動提取文本...

回答

1

提供的HTTP API它提供了可以解析的某種格式的文本(即JSON,XML),這將允許您下載該數據,將其存儲在本地(更多信息在此一次),並從下載的數據構建一個視圖以顯示不錯的內容和漂亮。 :)

關於存儲數據,請看編寫一個類,它將數據保存到應用程序的Documents目錄,並處理查看服務器的http頭信息,以查看是否需要重新下載該文件,或者它已經是最新的(這可以在理想情況下使用etags來完成,但如果etags在您的基礎架構中不受支持,則爲最後修改日期)。

1

由於這樣自己肯定是可以的,但相當一些工作得到正確, 你可能要檢查AsiHTTPRequest,尤其是 ASIWebPageRequest

HTH

0

你應該能夠保存UIWebView的內容,將URL數據複製到文件中以便在代表webViewDidFinishLoad方法中使用

NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];