我想在用戶連接到網絡並離線存儲(包括圖像/資源)時加載網頁。如果用戶沒有連接到任何網絡,那麼我應該加載之前存儲的網頁。我試過NSData dataWithContentsOfURL:(NSURL *)url
和NSString stringWithContentsOfURL
但這些商店只存儲html內容而不是資源。 在此先感謝。如何在iphone中緩存整個網頁?
回答
write this data into file using
-(void)writeDataToFile:(NSString*)filename
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if(filename==nil)
{
DLog(@"FILE NAME IS NIL");
return;
}
// the path to write file
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat: @"%@",filename]];
/*NSData *writeData;
writeData=[NSKeyedArchiver archivedDataWithRootObject:pArray]; */
NSFileManager *fm=[NSFileManager defaultManager];
if(!filePath)
{
//DLog(@"File %@ doesn't exist, so we create it", filePath);
[fm createFileAtPath:filePath contents:self.mRespData attributes:nil];
}
else
{
//DLog(@"file exists");
[self.mRespData writeToFile:filePath atomically:YES];
}
NSMutableData *resData = [[NSMutableData alloc] init];
self.mRespData=resData;
[resData release];
}
,並在下一次加載它
我想簡單的解決方法是這樣的 - 「Safari瀏覽器客戶端存儲和離線應用程序編程指南」,http://developer.apple.com/library/safari/#documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.html
只有當你正在使用的應用程序HTML5和webview,到目前爲止還沒有測試這種方法,所以它可能工作。
這是關於離線存儲,如果你是網絡開發者,但問題是如何存儲*任何*網站離線使用。 –
謝謝你告訴我,你是對的,只有當我們用webview和HTML5製作應用程序時,HTML5才能完成這項工作。 – Tom
我不知道是否有一個在線的解決方案一樣myWebView.cache4Offline = YES;
,但我擔心,只要你,如果你想任何網站脫機可用內沒有訪問到網站的代碼(即你的應用程序),你必須自己編寫這個程序。關於它的思考,它似乎並不那麼困難:
- 掃描圖像的URL的HTML字符串(和一切你需要的)
- 下載使用
NSData dataWithContentsOfURL
(也許有點惱人從互聯網上這些資源,因爲選項:錯誤:相對/絕對URL - 保存的數據與NSData的將writeToFile到文件)
- 在HTML從3.更換URL與文件路徑(OR,更好地利用公約在您轉換他們網址文件的URL)
希望它可以幫助
這個解決方案可以工作,除了你無法用hTML中的文件路徑替換URL之外,因爲filePath指向NSData而不是.png圖像 –
你可以做到這一點與ASIHttpRequest。如果你不想使用該項目(它不再是活動的),你可以查看代碼以及它的功能。查看this瞭解更多信息。
- 1. 在iPhone上緩存整個網頁
- 2. 如何緩存整個網頁與iOS中的圖像
- 3. 如何緩存整個網頁中的iOS 4以上
- 4. 網頁緩存在Hazelcast中
- 5. 使用UIWebView緩存iPhone上的網頁
- 6. 如何在iPhone safari中捕捉整個網頁?
- 7. 如何在整個網站中禁用http緩存?
- 8. 如何緩存整個頁面保存一個元素
- 9. Magento整頁緩存
- 10. monotouch/objective c iphone 5.x如何使用NSURLCache緩存網頁?
- 11. 在ios上下載並緩存整個網頁
- 12. 如何在iPhone上下載整個網頁(帶圖片)?
- 13. 緩存在網頁視圖
- 14. 如何在iphone中緩存圖像
- 15. 如何在iPhone中緩存元素
- 16. Codeigniter網頁緩存
- 17. 網頁緩存setexpires
- 18. 如何將網頁寫入緩存?
- 19. 如何防止uiwebview緩存網頁?
- 20. 抓取圖像,整個網頁並緩存它們
- 21. 緩存整個網站以加快頁面加載速度?
- 22. 在iPhone上緩存網頁的圖書館?
- 23. 什麼是整頁緩存
- 24. 整頁緩存,塊更新
- 25. 如何保存完整的網頁
- 26. nginx如何在動態網頁的中間緩存一些塊
- 27. 如何在網頁中緩存靜態html元素?
- 28. 如何使用Java在GAE中設置網頁緩存設置?
- 29. 如何爲整個頁面實現緩存除用戶控制?
- 30. 如何在iPhone中本地保存網頁?
我不認爲這回答了這個問題。這不是關於如何存儲數據,而是關於如何下載網站的一切並將其存儲。 –
你想要存儲什麼數據? – Saad
我不想存儲任何數據,但提問者似乎......問題 - 據我瞭解 - 是:如何保存任何*網站的*所有內容以供日後離線使用。 –